Jenis dan fungsi data tanggal dan waktu (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL Database Azure SQL Managed Instance Azure Synapse AnalyticsSQL database di Microsoft Fabric

Bagian dalam artikel ini mencakup semua Transact-SQL jenis dan fungsi data tanggal dan waktu, termasuk penggunaan dan contoh.

Jenis data tanggal dan waktu

Tabel berikut mencantumkan tipe data tanggal dan waktu Transact-SQL.

Jenis Data Format Rentang Akurasi Ukuran penyimpanan (byte) Presisi kedua pecahan yang ditentukan pengguna Offset zona waktu
time HH:mm:ss[.nnnnnnn] 00:00:00.0000000 hingga 23:59:59.9999999 100 nanodetik 3 hingga 5 Ya Tidak
date yyyy-MM-dd 0001-01-01 hingga 9999-12-31 1 hari 3 Tidak Tidak
smalldatetime dd-MM-yyyy HH.mm.ss 1900-01-01 hingga 2079-06-06 1 menit 4 Tidak Tidak
datetime yyyy-MM-dd HH:mm:ss[.nnn] 1753-01-01 hingga 9999-12-31 0,00333 detik 8 Tidak Tidak
datetime2 yyyy-MM-dd HH:mm:ss[.nnnnnnn] 0001-01-01 00:00:00.0000000 hingga 9999-12-31 23:59:59.99999999 100 nanodetik 6 hingga 8 Ya Tidak
datetimeoffset yyyy-MM-dd HH:mm:ss[.nnnnnnn] [+|-]HH:mm 0001-01-01 00:00:00.0000000 hingga 9999-12-31 23:59:59.9999999 (dalam UTC) 100 nanodetik 8 hingga 10 Ya Ya

Catatan

Jenis data rowversion Transact-SQL bukan jenis data tanggal atau waktu. tanda waktu adalah sinonim yang tidak digunakan lagi untuk rowversion.

Fungsi tanggal dan waktu

Tabel berikut mencantumkan fungsi tanggal dan waktu Transact-SQL. Untuk informasi selengkapnya tentang determinisme, lihat Fungsi Deterministik dan Nondeterministik.

Fungsi yang mengembalikan nilai tanggal dan waktu sistem

Transact-SQL memperoleh semua nilai tanggal dan waktu sistem dari sistem operasi komputer tempat instans SQL Server berjalan.

Fungsi tanggal dan waktu sistem presisi yang lebih tinggi

Karena SQL Server 2008 (10.0.x), Mesin Database memperoleh nilai tanggal dan waktu melalui penggunaan GetSystemTimeAsFileTime() Windows API. Akurasi tergantung pada perangkat keras komputer dan versi Windows tempat instans SQL Server berjalan. API ini memiliki presisi tetap pada 100 nanodetik. GetSystemTimeAdjustment() Gunakan WINDOWS API untuk menentukan akurasi.

Fungsi Sintaks Nilai hasil Jenis data kembalian Determinisme
SYSDATETIME SYSDATETIME() Fungsi mengembalikan SYSDATETIME nilai datetime2(7) yang berisi tanggal dan waktu komputer tempat instans SQL Server berjalan. Nilai yang dikembalikan tidak menyertakan offset zona waktu. datetime2(7) Nondeterministik
SYSDATETIMEOFFSET SYSDATETIMEOFFSET () Fungsi mengembalikan SYSDATETIMEOFFSET nilai datetimeoffset(7) yang berisi tanggal dan waktu komputer tempat instans SQL Server berjalan. Nilai yang dikembalikan mencakup offset zona waktu. datetimeoffset(7) Nondeterministik
SYSDATETIME SYSUTCDATETIME () Fungsi mengembalikan SYSUTCDATETIME nilai datetime2(7) yang berisi tanggal dan waktu komputer tempat instans SQL Server berjalan. SYSUTCDATETIME mengembalikan nilai tanggal dan waktu sebagai waktu UTC (Waktu Universal Terkoordinasi). datetime2(7) Nondeterministik

Fungsi tanggal dan waktu sistem presisi yang lebih rendah

Fungsi Sintaks Nilai hasil Jenis data kembalian Determinisme
CURRENT_TIMESTAMP CURRENT_TIMESTAMP Fungsi mengembalikan CURRENT_TIMESTAMP nilai datetime yang berisi tanggal dan waktu komputer tempat instans SQL Server berjalan. Nilai yang dikembalikan tidak menyertakan offset zona waktu. datetime Nondeterministik
GETDATE GETDATE() Fungsi mengembalikan GETDATE nilai datetime yang berisi tanggal dan waktu komputer tempat instans SQL Server berjalan. Nilai yang dikembalikan tidak menyertakan offset zona waktu. datetime Nondeterministik
GETUTCDATE GETUTCDATE() Fungsi mengembalikan GETUTCDATE nilai datetime yang berisi tanggal dan waktu komputer tempat instans SQL Server berjalan. Fungsi mengembalikan GETUTCDATE nilai tanggal dan waktu sebagai waktu UTC (Waktu Universal Terkoordinasi). datetime Nondeterministik
CURRENT_DATE CURRENT_DATE Fungsi mengembalikan CURRENT_DATE nilai tanggal yang hanya berisi tanggal komputer tempat instans Mesin Database berjalan. Nilai yang dikembalikan tidak menyertakan waktu dan offset zona waktu. date Nondeterministik

Fungsi yang mengembalikan bagian tanggal dan waktu

Fungsi Sintaks Nilai hasil Jenis data kembalian Determinisme
DATE_BUCKET DATE_BUCKET ( <datepart>, <number>, <date>, <origin>) Fungsi mengembalikan DATE_BUCKET nilai yang sesuai dengan awal setiap wadah tanggal-waktu dari tanda waktu yang ditentukan oleh parameter asal , atau nilai 1900-01-01 00:00:00.000 asal default jika parameter asal tidak ditentukan. Jenis pengembalian tergantung pada argumen yang disediakan untuk tanggal. Nondeterministik
DATENAME DATENAME ( <datepart>, <date> ) Fungsi mengembalikan DATENAME string karakter yang mewakili bagian tanggal yang ditentukan dari tanggal yang ditentukan. nvarchar Nondeterministik
DATEPART DATEPART ( <datepart>, <date> ) Fungsi mengembalikan DATEPART bilangan bulat yang mewakili bagian tanggal yang ditentukan dari tanggal yang ditentukan. int Nondeterministik
DATETRUNC DATETRUNC ( <datepart>, <date> ) Fungsi mengembalikan DATETRUNC tanggal input yang dipotong ke datepart tertentu. Jenis pengembalian tergantung pada argumen yang disediakan untuk tanggal. Nondeterministik
DAY DAY ( <date> ) Fungsi DAY mengembalikan bilangan bulat yang mewakili bagian hari dari tanggal yang ditentukan. int Deterministic
MONTH MONTH ( <date> ) Fungsi MONTH mengembalikan bilangan bulat yang mewakili bagian bulan dari tanggal yang ditentukan. int Deterministic
YEAR YEAR ( <date> ) Fungsi YEAR mengembalikan bilangan bulat yang mewakili bagian tahun dari tanggal yang ditentukan. int Deterministic

Fungsi yang mengembalikan nilai tanggal dan waktu dari bagiannya

Fungsi Sintaks Nilai hasil Jenis data kembalian Determinisme
DATEFROMPARTS DATEFROMPARTS ( <year>, <month>, <day> ) Fungsi mengembalikan DATEFROMPARTS nilai tanggal untuk tahun, bulan, dan hari yang ditentukan. date Deterministic
DATETIME2FROMPARTS DATETIME2FROMPARTS ( <year>, <month>, <day>, <hour>, <minute>, <seconds>, <fractions>, <precision> ) Fungsi DATETIME2FROMPARTS mengembalikan nilai datetime2 untuk tanggal dan waktu yang ditentukan, dengan presisi yang ditentukan. datetime2(presisi) Deterministic
DATETIMEFROMPARTS DATETIMEFROMPARTS ( <year>, <month>, <day>, <hour>, <minute>, <seconds>, <milliseconds> ) Fungsi mengembalikan DATETIMEFROMPARTS nilai datetime untuk tanggal dan waktu yang ditentukan. datetime Deterministic
DATETIMEOFFSETFROMPARTS DATETIMEOFFSETFROMPARTS ( <year>, <month>, <day>, <hour>, <minute>, <seconds>, <fractions>, <hour_offset>, <minute_offset>, <precision> ) Fungsi mengembalikan DATETIMEOFFSETFROMPARTS nilai datetimeoffset untuk tanggal dan waktu yang ditentukan, dengan offset dan presisi yang ditentukan. datetimeoffset(presisi) Deterministic
SMALLDATETIMEFROMPARTS SMALLDATETIMEFROMPARTS ( <year>, <month>, <day>, <hour>, <minute> ) Fungsi mengembalikan SMALLDATETIMEFROMPARTS nilai smalldatetime untuk tanggal dan waktu yang ditentukan. smalldatetime Deterministic
TIMEFROMPARTS TIMEFROMPARTS ( <hour>, <minute>, <seconds>, <fractions>, <precision> ) Fungsi mengembalikan TIMEFROMPARTS nilai waktu untuk waktu yang ditentukan, dengan presisi yang ditentukan. time(presisi) Deterministic

Fungsi yang mengembalikan nilai perbedaan tanggal dan waktu

Fungsi Sintaks Nilai hasil Jenis data kembalian Determinisme
DATEDIFF DATEDIFF ( <datepart>, <startdate>, <enddate> ) Fungsi mengembalikan DATEDIFF jumlah batas tanggal atau waktu, disilangkan di antara dua tanggal yang ditentukan. int Deterministic
DATEDIFF_BIG DATEDIFF_BIG ( <datepart>, <startdate>, <enddate> ) Fungsi mengembalikan DATEDIFF_BIG jumlah batas tanggal atau waktu, disilangkan di antara dua tanggal yang ditentukan. bigint Deterministic

Fungsi yang mengubah nilai tanggal dan waktu

Fungsi Sintaks Nilai hasil Jenis data kembalian Determinisme
DATEADD DATEADD (<datepart>, <number>, <date> ) Fungsi mengembalikan DATEADD nilai datetime baru dengan menambahkan interval ke bagian tanggal yang ditentukan dari tanggal yang ditentukan. Tipe data argumen tanggal Deterministic
EOMONTH EOMONTH ( <start_date> [ , <month_to_add> ] ) Fungsi mengembalikan EOMONTH hari terakhir dalam sebulan yang berisi tanggal yang ditentukan, dengan offset opsional. Jenis pengembalian adalah jenis argumen start_date , atau secara bergantian , jenis data tanggal . Deterministic
SWITCHOFFSET SWITCHOFFSET (<DATETIMEOFFSET>, <time_zone> ) Fungsi mengembalikan SWITCHOFFSET perubahan offset zona waktu dari nilai datetimeoffset , dan mempertahankan nilai UTC. datetimeoffset dengan presisi pecahan argumen DATETIMEOFFSET Deterministic
TODATETIMEOFFSET TODATETIMEOFFSET (<expression>, <time_zone> ) Fungsi mengubah TODATETIMEOFFSET nilai datetime2 menjadi nilai datetimeoffset. TODATETIMEOFFSET menginterpretasikan nilai datetime2 dalam waktu lokal, untuk time_zone yang ditentukan. datetimeoffset dengan presisi pecahan argumen datetime Deterministic

Petunjuk / Saran

Untuk informasi dan rekomendasi selengkapnya tentang memanipulasi informasi zona waktu di SQL Server dengan jenis data datetimeoffset , lihat ZONA WAKTU.

Fungsi yang mengatur atau mengembalikan fungsi format sesi

Fungsi Sintaks Nilai hasil Jenis data kembalian Determinisme
@@DATEFIRST @@DATEFIRST Fungsi @@DATEFIRST mengembalikan nilai saat ini, untuk sesi, dari SET DATEFIRST. kecil Nondeterministik
SET DATEFIRST SET DATEFIRST { *number* } atau SET DATEFIRST { *@number_var* } Pernyataan menetapkan SET DATEFIRST hari pertama dalam seminggu menjadi angka dari 1 hingga 7. Tidak berlaku Tidak berlaku
SET DATEFORMAT SET DATEFORMAT { *format* } atau SET DATEFORMAT { *@format_var* } Pernyataan SET DATEFORMAT menetapkan urutan bagian tanggal (bulan/hari/tahun) untuk memasukkan data datetime atau smalldatetime . Tidak berlaku Tidak berlaku
@@LANGUAGE @@LANGUAGE Fungsi mengembalikan @@LANGUAGE nama bahasa yang digunakan saat ini. @@LANGUAGE bukan fungsi tanggal atau waktu. Namun, pengaturan bahasa dapat memengaruhi output fungsi tanggal. Tidak berlaku Tidak berlaku
SET LANGUAGE SET LANGUAGE { [ N ] '*language*' } atau SET LANGUAGE { *@language_var* } Mengatur lingkungan bahasa untuk pesan sesi dan sistem. SET LANGUAGE bukan fungsi tanggal atau waktu, tetapi pengaturan bahasa memengaruhi output fungsi tanggal. Tidak berlaku Tidak berlaku
sp_helplanguage sp_helplanguage [ [ *@language* = ] '*language*' ] Fungsi mengembalikan sp_helplanguage informasi tentang format tanggal semua bahasa yang didukung. Pengaturan bahasa memengaruhi output fungsi tanggal. Tidak berlaku Tidak berlaku

Fungsi yang memvalidasi nilai tanggal dan waktu

Fungsi Sintaks Nilai hasil Jenis data kembalian Determinisme
ISDATE ISDATE ( <expression> ) Fungsi menentukan ISDATE apakah ekspresi input datetime atau smalldatetime memiliki nilai tanggal atau waktu yang valid. int Fungsi ISDATE ini hanya deterministik digunakan dengan fungsi , ketika CONVERT parameter gaya ditentukan, dan ketika gaya tidak sama dengan CONVERT 0, 100, 9, atau 109.
Artikel Deskripsi
FORMAT Fungsi mengembalikan FORMAT nilai yang diformat dengan format dan budaya opsional yang ditentukan. Gunakan fungsi FORMAT untuk pemformatan nilai tanggal/waktu dan angka yang sadar lokal sebagai string.
CAST dan CONVERT Fungsi CAST dan CONVERT mengonversi nilai tanggal dan waktu ke dan dari literal string serta format tanggal dan waktu lainnya.
Tulis Pernyataan Transact-SQL Internasional Menyediakan panduan portabilitas database dan aplikasi database yang menggunakan pernyataan Transact-SQL dari satu bahasa ke bahasa lain, atau yang mendukung beberapa bahasa.
Fungsi Skalar ODBC Menyediakan informasi tentang fungsi skalar ODBC yang tersedia untuk digunakan dalam pernyataan Transact-SQL. Menyertakan fungsi tanggal dan waktu ODBC.