Saya memiliki proyek uji Winforms kecil, tempat saya mendapatkan nama, nama belakang, dan usia dari kotak teks. Di database saya, saya memiliki nama kolom, nama belakang dan kelahiran. Kolom kelahiran adalah tipe data DATE. (SQLServerDB)

    TABLE CUSTOMER
column name - Datatype nvchar
column lastname - Datatype nvchar
column birth - Datatype DATE

Saya tahu cara mendapatkan data sebagai pernyataan penyisipan ke dalam DB saya.

Pertanyaanku adalah:

Mungkinkah usia, yang saya dapatkan sebagai INT, dapat dikonversi ke DATE?

Contoh: usia 38 dari kotak teks -> ini harus ditulis sebagai f.e. 27.03.1982 ke dalam DB.

-1
SaMat 27 Maret 2020, 21:14

1 menjawab

Jawaban Terbaik

Anda dapat meneruskan variabel usia ke kueri dan menggunakan dateadd():

dateadd(year, @age, cast(getdate() as date))

Demo di DB Fiddle:

select dateadd(year, -38, cast(getdate() as date)) birth;
| birth      |
| :--------- |
| 1982-03-27 |

Perhatikan bahwa ini adalah metode yang agak tidak akurat untuk menghitung tanggal lahir; usia adalah interval tanggal, yang harus mencakup bulan dan hari. Anda mungkin harus meminta pengguna untuk memberikan tanggal lahir mereka, dari mana Anda dapat memperoleh usia.

1
GMB 27 Maret 2020, 18:17