Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

Cara Mendapatkan Hari Terakhir Bulan Ini di T-SQL

Masalah:

Anda ingin menemukan hari terakhir dalam sebulan untuk tanggal tertentu di T-SQL.

Contoh:

Database kami memiliki tabel bernama Furniture dengan data di kolom Id , Name , dan PurchaseDate .

Id Nama Tanggal Pembelian
1 sofa 10-02-2019
2 meja 01-04-2019
3 rak buku 20-05-2019

Mari kita dapatkan nama produk dan tanggal pembelian dan hari terakhir bulan ketika barang-barang ini dibeli.

Solusi:

Kami akan menggunakan fungsi EOMONTH() untuk menemukan hari terakhir dalam sebulan.

SELECT Name,
	 PurchaseDate,
	 EOMONTH(PurchaseDate) AS LastDayDate
FROM Furniture;

Berikut hasil querynya:

Nama Tanggal Pembelian TanggalHariTerakhir
sofa 02-2019-10 02-2019-28
meja 04-2019-01 04-2019-30
rak buku 05-2019-20 05-2019-31

Diskusi:

Jika Anda ingin mendapatkan tanggal yang berisi hari terakhir bulan dari tanggal tertentu, gunakan fungsi EOMONTH(). Fungsi ini membutuhkan satu argumen wajib:tanggal (atau tanggal dan waktu), yang dapat berupa kolom tanggal/waktu atau ekspresi yang mengembalikan tanggal. (Dalam contoh kami, kami menggunakan PurchaseDate kolom.)

EOMONTH() mengembalikan hari terakhir bulan yang sama dengan argumen. Permintaan di atas untuk sofa dengan tanggal pembelian '2019-02-10' mengembalikan '2019-02-28'; pada bulan Februari 2019, hari terakhir bulan itu adalah tanggal 28.

Jika Anda ingin mengembalikan hari terakhir bulan kedua, ketiga, dst. dari tanggal tertentu, gunakan argumen kedua opsional EOMONTH():jumlah bulan untuk ditambahkan. Lihat contohnya:

SELECT Name,
	 PurchaseDate,
	 EOMONTH(PurchaseDate,1) AS LastDayDate
FROM Furniture;

Berikut hasil querynya:

Nama Tanggal Pembelian TanggalHariTerakhir
sofa 2019-02 -10 2019-03 -30
meja 2019-04 -01 2019-05 -31
rak buku 2019-05 -20 2019-06 -30

Untuk sofa dengan tanggal pembelian '2019-02-10', kueri ini menampilkan '30-03-2019' – hari terakhir berikutnya bulan. Kami telah menambahkan satu bulan ke akhir bulan ini.

Jika Anda ingin menemukan hari terakhir bulan ini sebelum bulan tertentu, gunakan nilai negatif (misalnya '-1') sebagai argumen kedua:

SELECT Name,
	 PurchaseDate,
	 EOMONTH(PurchaseDate,-1) AS LastDayDate
FROM Furniture;

Berikut hasil querynya:

Nama Tanggal Pembelian TanggalHariTerakhir
sofa 2019-02 -10 2019-01 -31
meja 2019-04 -01 2019-03 -31
rak buku 2019-05 -20 2019-04 -30

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memahami Transaksi dalam SQL

  2. SQL, cara menghapus data dan tabel

  3. ZDLRA – RMAN-20035 RECID tinggi tidak valid

  4. Praktik Terbaik untuk Desain Basis Data Multi-Bahasa

  5. Menggunakan Langkah Unpivot untuk membuat Tabel Tabular dari Tabel Crosstab