Di SQL Server, Anda dapat menggunakan DAY()
berfungsi untuk mengembalikan bagian "hari" dari suatu tanggal. Fungsi ini mengembalikan bilangan bulat yang mewakili hari dalam sebulan (bukan hari dalam seminggu).
Di bawah ini adalah contoh cara menggunakan fungsi ini.
Sintaks
Sintaksnya seperti ini:
DAY ( date )
Dimana date
adalah ekspresi yang diselesaikan ke salah satu tipe data berikut:
- tanggal
- waktu kencan
- offset tanggal-waktu
- datetime2
- waktu kecil
- waktu
Ini bisa berupa ekspresi kolom, ekspresi, string literal, atau variabel yang ditentukan pengguna.
Contoh
Berikut adalah contoh dasar cara kerjanya:
SELECT SYSDATETIME() AS 'Date', DAY(SYSDATETIME()) AS 'Day';
Hasil:
+-----------------------------+-------+ | Date | Day | |-----------------------------+-------| | 2018-06-18 00:20:22.1284540 | 18 | +-----------------------------+-------+
Jadi DAY()
fungsi dapat mengekstrak hari dari datetime2 nilai (yang dikembalikan oleh SYSDATETIME()
fungsi).
Tanggal Disediakan sebagai Literal String
Berikut adalah contoh di mana tanggal diberikan sebagai literal string.
SELECT DAY('2019-01-07') AS Result;
Hasil:
+----------+ | Result | |----------| | 7 | +----------+
Dan inilah contoh tanggal yang diberikan dalam format yang berbeda:
SELECT DAY('07/01/2017') AS Result;
Hasil:
+----------+ | Result | |----------| | 1 | +----------+
Namun, biasanya yang terbaik adalah menghindari penggunaan tanggal dalam format seperti itu. Jika Anda harus melakukannya, Anda harus memperhatikan setelan bahasa dan/atau setelan format tanggal sesi saat ini.
Setelan Bahasa
Output dari contoh sebelumnya akan bergantung pada pengaturan bahasa dan/atau pengaturan format tanggal dari sesi saat ini.
Saat kami menyetel bahasa, format tanggal secara implisit disetel pada waktu yang sama.
Inilah yang terjadi jika kami memberikan argumen tanggal yang sama dalam dua lingkungan bahasa yang berbeda.
Inggris
SET LANGUAGE British; SELECT DAY('07/01/2017') AS Result;
Hasil:
+----------+ | Result | |----------| | 7 | +----------+
us_English
SET LANGUAGE us_English; SELECT DAY('07/01/2017') AS Result;
Hasil:
+----------+ | Result | |----------| | 1 | +----------+
Setelan Format Tanggal
Pengaturan format tanggal dapat mengesampingkan pengaturan bahasa, jadi Anda juga perlu mengetahui pengaturan ini. Misalnya, kita bisa menggunakan us_English untuk bahasa kami (yang memiliki format tanggal default mdy ), tetapi kita dapat mengganti format tanggal menjadi dmy .
Ini contohnya:
us_English – Format Tanggal Default
Di sini, kami mengatur bahasa menjadi us_English , yang secara implisit menyetel format tanggal ke myy .
SET LANGUAGE us_English; SELECT DAY('07/01/2017') AS Result;
Hasil:
+----------+ | Result | |----------| | 1 | +----------+
us_English – Ganti Format Tanggal
Di sini, kami mengatur bahasa menjadi us_English (yang secara implisit menyetel format tanggal), tetapi kemudian kami secara eksplisit menyetel format tanggal ke dmy . Ini menggantikan format tanggal yang secara implisit disetel saat kami menyetel bahasa.
SET LANGUAGE us_English; SET DATEFORMAT dmy; SELECT DAY('07/01/2017') AS Result;
Hasil:
+----------+ | Result | |----------| | 7 | +----------+
Kembalikan Nama Hari
Jika Anda perlu mengembalikan nama hari (sebagai lawan dari nomor hari), lihat 3 Cara Mendapatkan Nama Hari dari Tanggal di SQL Server.