Bagikan melalui


smalldatetime (Transact-SQL)

Berlaku untuk:SQL ServerDatabase Azure SQLInstans Terkelola Azure SQLAzure Synapse AnalyticsSistem Platform Analitik (PDW)Database SQL di Microsoft Fabric

Menentukan tanggal yang digabungkan dengan waktu hari. Waktu didasarkan pada hari 24 jam, dengan detik selalu nol (:00) dan tanpa detik pecahan.

Note

Gunakanwaktu , tanggal , datetime2, dan jenis data datetimeoffset untuk pekerjaan baru. Jenis ini selaras dengan standar SQL, karena lebih portabel. time, datetime2 , dan datetimeoffset memberikan presisi lebih detik. datetimeoffset menyediakan dukungan zona waktu untuk aplikasi yang disebarkan secara global.

Deskripsi SmallDateTime

Property Value
Syntax smalldatetime
Usage DECLARE @MySmallDateTime SMALLDATETIME;

CREATE TABLE Table1 (Column1 SMALLDATETIME);
Format harfiah string default
(digunakan untuk klien tingkat bawah)
Tidak berlaku
Rentang tanggal 1900-01-01 melalui 2079-06-06

1 Januari 1900, hingga 6 Juni 2079
Rentang waktu 00:00:00 melalui 23:59:59

2024-05-09 23:59:59 membulatkan ke 2024-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, tetap
Accuracy Sebentar
Nilai bawaan 1900-01-01 00:00:00
Calendar Gregorian

(Tidak termasuk rentang lengkap tahun.)
presisi kedua pecahan yang ditentukan pengguna No
Zona waktu mengimbangi sadar dan pelestarian No
yang sadar akan siang hari 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.

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 smalldatetime ke nilai tanggal .

DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';

DECLARE @date AS DATE = @smalldatetime;

SELECT @smalldatetime AS '@smalldatetime',
       @date AS 'date';

Berikut adalah hasil yang ditetapkan.

@smalldatetime        date
--------------------- ----------
1955-12-13 12:43:00   1955-12-13

Ketika konversi adalah untuk waktu(n), jam, menit, dan detik disalin. Detik pecahan diatur ke 0. Kode berikut menunjukkan hasil konversi nilai smalldatetime menjadi nilai waktu (4).

DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';

DECLARE @time AS TIME (4) = @smalldatetime;

SELECT @smalldatetime AS '@smalldatetime',
       @time AS 'time';

Berikut adalah hasil yang ditetapkan.

@smalldatetime          time
----------------------- -------------
1955-12-13 12:43:00     12:43:00.0000

Saat konversi ke datetime, nilai smalldatetime disalin ke nilai tanggalwaktu. Detik pecahan diatur ke 0. Kode berikut menunjukkan hasil konversi nilai smalldatetime menjadi nilai tanggalwaktu .

DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';

DECLARE @datetime AS DATETIME = @smalldatetime;

SELECT @smalldatetime AS '@smalldatetime',
       @datetime AS 'datetime';

Berikut adalah hasil yang ditetapkan.

@smalldatetime          datetime
----------------------- -----------------------
1955-12-13 12:43:00     1955-12-13 12:43:00.000

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 smalldatetime menjadi nilai datetimeoffset(4) .

DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';

DECLARE @datetimeoffset AS DATETIMEOFFSET (4) = @smalldatetime;

SELECT @smalldatetime AS '@smalldatetime',
       @datetimeoffset AS 'datetimeoffset(4)';

Berikut adalah hasil yang ditetapkan.

@smalldatetime        datetimeoffset(4)
--------------------- ------------------------------
1955-12-13 12:43:00   1955-12-13 12:43:00.0000 +00:0

Untuk konversi ke datetime2(n), nilai smalldatetime disalin ke nilai datetime2(n ). Detik pecahan diatur ke 0. Kode berikut menunjukkan hasil konversi nilai smalldatetime menjadi nilai datetime2(4) .

DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';

DECLARE @datetime2 AS DATETIME2 (4) = @smalldatetime;

SELECT @smalldatetime AS '@smalldatetime',
       @datetime2 AS ' datetime2(4)';

Berikut adalah hasil yang ditetapkan.

@smalldatetime        datetime2(4)
--------------------- ------------------------
1955-12-13 12:43:00   1955-12-13 12:43:00.0000

Examples

A. Memerankan literal string dengan detik ke smalldatetime

Contoh berikut membandingkan konversi detik dalam literal string dengan smalldatetime.

SELECT CAST ('2024-05-08 12:35:29' AS SMALLDATETIME),
       CAST ('2024-05-08 12:35:30' AS SMALLDATETIME),
       CAST ('2024-05-08 12:59:59.998' AS SMALLDATETIME);
Input Output
2024-05-08 12:35:29 2024-05-08 12:35:00
2024-05-08 12:35:30 2024-05-08 12:36:00
2024-05-08 12:59:59.998 2024-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 ('2024-05-08 12:35:29.1234567 +12:15' AS TIME (7)) AS 'time',
       CAST ('2024-05-08 12:35:29.1234567 +12:15' AS DATE) AS 'date',
       CAST ('2024-05-08 12:35:29.123' AS SMALLDATETIME) AS 'smalldatetime',
       CAST ('2024-05-08 12:35:29.123' AS DATETIME) AS 'datetime',
       CAST ('2024-05-08 12:35:29.1234567 +12:15' AS DATETIME2 (7)) AS 'datetime2',
       CAST ('2024-05-08 12:35:29.1234567 +12:15' AS DATETIMEOFFSET (7)) AS 'datetimeoffset';
Jenis data Output
time 12:35:29.1234567
date 2024-05-08
smalldatetime 2024-05-08 12:35:00
datetime 2024-05-08 12:35:29.123
datetime2 2024-05-08 12:35:29.1234567
datetimeoffset 2024-05-08 12:35:29.1234567 +12:15