smalldatetime (Transact-SQL)
Berlaku untuk: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Menentukan tanggal yang digabungkan dengan waktu hari. Waktu didasarkan pada hari 24 jam, dengan detik selalu nol (:00) dan tanpa detik pecahan.
Catatan
Gunakan jenis data waktu, tanggal, tanggalwaktu2, dan datetimeoffset untuk pekerjaan baru. Jenis ini selaras dengan Standar SQL. Mereka lebih portabel. time, datetime2 , dan datetimeoffset memberikan presisi lebih detik. datetimeoffset menyediakan dukungan zona waktu untuk aplikasi yang disebarkan secara global.
deskripsi smalldatetime
Properti | Nilai |
---|---|
Sintaks | smalldatetime |
Penggunaan | DECLARE @MySmalldatetime smalldatetime CREATE TABLE Table1 ( Column1 smalldatetime ) |
Format literal string default (digunakan untuk klien tingkat bawah) |
Tidak berlaku |
Rentang tanggal | 1900-01-01 hingga 2079-06-06 1 Januari 1900, hingga 6 Juni 2079 |
Rentang waktu | 00:00:00 hingga 23:59:59 2007-05-09 23:59:59 akan membulatkan ke 2007-05-10 00:00:00 |
Rentang elemen | YYYY adalah empat digit, mulai dari 1900, hingga 2079, yang mewakili setahun. MM adalah dua digit, mulai dari 01 hingga 12, yang mewakili sebulan dalam tahun yang ditentukan. DD adalah dua digit, mulai dari 01 hingga 31 tergantung pada bulan, yang mewakili hari dari bulan yang ditentukan. hh adalah dua digit, mulai dari 00 hingga 23, yang mewakili jam. mm adalah dua digit, mulai dari 00 hingga 59, yang mewakili menit. ss adalah dua digit, mulai dari 00 hingga 59, yang mewakili yang kedua. Nilai yang 29,998 detik atau kurang dibulatkan ke bawah ke menit terdekat. Nilai 29,999 detik atau lebih dibulatkan ke atas ke menit terdekat. |
Panjang karakter | 19 posisi maksimum |
Ukuran penyimpanan | 4 byte, diperbaiki. |
Akurasi | Sebentar |
Nilai default | 1900-01-01 00:00:00 |
Calendar | Gregorian (Tidak termasuk rentang lengkap tahun.) |
Presisi kedua pecahan yang ditentukan pengguna | No |
Sadar dan pelestarian offset zona waktu | No |
Kesadaran musim panas | No |
Kepatuhan ANSI dan ISO 8601
smalldatetime tidak sesuai dengan ANSI atau ISO 8601.
Mengonversi data tanggal dan waktu
Saat Anda mengonversi ke jenis data tanggal dan waktu, SQL Server menolak semua nilai yang tidak dapat dikenali sebagai tanggal atau waktu. Untuk informasi tentang menggunakan fungsi CAST dan CONVERT dengan data tanggal dan waktu, lihat CAST dan CONVERT (Transact-SQL).
Mengonversi smalldatetime ke jenis tanggal dan waktu lainnya
Bagian ini menjelaskan apa yang terjadi ketika jenis data smalldatetime dikonversi ke jenis data tanggal dan waktu lainnya.
Untuk konversi hingga saat ini, tahun, bulan, dan hari disalin. Kode berikut menunjukkan hasil konversi nilai menjadi smalldatetime
date
nilai.
DECLARE @smalldatetime smalldatetime = '1955-12-13 12:43:10';
DECLARE @date date = @smalldatetime
SELECT @smalldatetime AS '@smalldatetime', @date AS 'date';
--Result
--@smalldatetime date
------------------------- ----------
--1955-12-13 12:43:00 1955-12-13
--
--(1 row(s) affected)
Ketika konversi adalah ke waktu(n), jam, menit, dan detik disalin. Detik pecahan diatur ke 0. Kode berikut menunjukkan hasil konversi nilai menjadi smalldatetime
time(4)
nilai.
DECLARE @smalldatetime smalldatetime = '1955-12-13 12:43:10';
DECLARE @time time(4) = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime', @time AS 'time';
--Result
--@smalldatetime time
------------------------- -------------
--1955-12-13 12:43:00 12:43:00.0000
--
--(1 row(s) affected)
Saat konversi ke datetime, nilai smalldatetime disalin ke nilai tanggalwaktu. Detik pecahan diatur ke 0. Kode berikut menunjukkan hasil konversi nilai menjadi smalldatetime
datetime
nilai.
DECLARE @smalldatetime smalldatetime = '1955-12-13 12:43:10';
DECLARE @datetime datetime = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime', @datetime AS 'datetime';
--Result
--@smalldatetime datetime
------------------------- -----------------------
--1955-12-13 12:43:00 1955-12-13 12:43:00.000
--
--(1 row(s) affected)
Untuk konversi ke datetimeoffset(n), nilai smalldatetime disalin ke nilai datetimeoffset(n). Detik pecahan diatur ke 0, dan offset zona waktu diatur ke +00:0. Kode berikut menunjukkan hasil konversi nilai menjadi smalldatetime
datetimeoffset(4)
nilai.
DECLARE @smalldatetime smalldatetime = '1955-12-13 12:43:10';
DECLARE @datetimeoffset datetimeoffset(4) = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime', @datetimeoffset AS 'datetimeoffset(4)';
--Result
--@smalldatetime datetimeoffset(4)
------------------------- ------------------------------
--1955-12-13 12:43:00 1955-12-13 12:43:00.0000 +00:0
--
--(1 row(s) affected)
Untuk konversi ke datetime2(n), nilai smalldatetime disalin ke nilai datetime2(n ). Detik pecahan diatur ke 0. Kode berikut menunjukkan hasil konversi nilai menjadi smalldatetime
datetime2(4)
nilai.
DECLARE @smalldatetime smalldatetime = '1955-12-13 12:43:10';
DECLARE @datetime2 datetime2(4) = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime', @datetime2 AS ' datetime2(4)';
--Result
--@smalldatetime datetime2(4)
------------------------- ------------------------
--1955-12-13 12:43:00 1955-12-13 12:43:00.0000
--
--(1 row(s) affected)
Contoh
J. Casting string literals dengan detik ke smalldatetime
Contoh berikut membandingkan konversi detik dalam string literal dengan smalldatetime
.
SELECT
CAST('2007-05-08 12:35:29' AS smalldatetime)
,CAST('2007-05-08 12:35:30' AS smalldatetime)
,CAST('2007-05-08 12:59:59.998' AS smalldatetime);
Input | Output |
---|---|
2007-05-08 12:35:29 | 2007-05-08 12:35:00 |
2007-05-08 12:35:30 | 2007-05-08 12:36:00 |
2007-05-08 12:59:59.998 | 2007-05-08 13:00:00 |
B. Membandingkan jenis data tanggal dan waktu
Contoh berikut membandingkan hasil transmisi string dengan setiap jenis data tanggal dan waktu.
SELECT
CAST('2007-05-08 12:35:29. 1234567 +12:15' AS time(7)) AS 'time'
,CAST('2007-05-08 12:35:29. 1234567 +12:15' AS date) AS 'date'
,CAST('2007-05-08 12:35:29.123' AS smalldatetime) AS
'smalldatetime'
,CAST('2007-05-08 12:35:29.123' AS datetime) AS 'datetime'
,CAST('2007-05-08 12:35:29. 1234567 +12:15' AS datetime2(7)) AS
'datetime2'
,CAST('2007-05-08 12:35:29.1234567 +12:15' AS datetimeoffset(7)) AS
'datetimeoffset';
Jenis Data | Output |
---|---|
time | 12:35:29. 1234567 |
date | 2007-05-08 |
smalldatetime | 2007-05-08 12:35:00 |
datetime | 2007-05-08 12:35:29.123 |
datetime2 | 2007-05-08 12:35:29. 1234567 |
datetimeoffset | 2007-05-08 12:35:29.1234567 +12:15 |