Masalah:
Anda ingin menambahkan jumlah hari tertentu ke tanggal di T-SQL.
Contoh:
Basis data kami memiliki tabel bernama Flight
dengan data pada kolom Code
dan DepartureDate
.
Kode | Tanggal Keberangkatan |
---|---|
LT2030 | 20-02-2019 |
GH1100 | 01-03-2019 |
SR5467 | 30-12-2019 |
Mari kita ubah tanggal keberangkatan untuk semua penerbangan, tambahkan dua hari ke tanggal keberangkatan saat ini.
Solusi:
Kita akan menggunakan fungsi DATEADD() untuk menentukan satuan waktu yang akan ditambahkan, menentukan berapa banyak yang akan ditambahkan, dan memilih tanggal yang akan diubah. Lihat kuerinya:
SELECT Code, DATEADD(day, 2, DepartureDate) AS ChangedDepartureDate FROM Flight;
Ini hasilnya:
Kode | TanggalKeberangkatan Berubah |
---|---|
LT2030 | 22-02-2019 |
GH1100 | 03-03-2019 |
SR5467 | 01-01-2020 |
Diskusi:
Untuk mengubah tanggal dan/atau waktu dengan menambahkan nomor tertentu dari unit waktu yang dipilih, gunakan fungsi DATEADD() SQL Server. Fungsi ini bekerja pada tipe data tanggal, waktu, atau tanggal dan waktu. Dibutuhkan tiga argumen:
- Satuan tanggal/waktu yang diinginkan untuk ditambahkan. Dalam contoh kita, ini adalah hari; kami ingin menambahkan hari ke tanggal.
- Berapa banyak unit yang harus ditambahkan. Dalam contoh kita, ini adalah 2; kami ingin menambahkan 2 hari ke tanggal yang ada.
- Kolom yang berisi tanggal/waktu/datetime yang ingin kita ubah. (Dalam contoh kami, kami menggunakan kolom DepartureDate.) Argumen ini juga dapat berupa ekspresi yang mengembalikan tanggal/waktu/waktu tanggal.
Fungsi DATEADD() mengembalikan tanggal baru. Dalam contoh kita, tanggal baru dikembalikan sebagai ChangedDepartureDate
kolom. Untuk kode penerbangan 'LT2030', tanggal '2019-02-20' sekarang '2019-02-22'.
Fungsi DATEADD() dapat menggunakan unit tanggal dan waktu seperti year
, quarter
, month
, dayofyear
, day
, week
, weekday
, hour
, minute
, second
, dll. Anda dapat mempelajari lebih lanjut di dokumentasi SQL Server.