smalldatetime (Transact-SQL)

Berlaku untuk: SQL Server Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform 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, datetime2 , dan datetimeoffset untuk pekerjaan baru. Jenis-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 DEKLARASIKAN @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 tersebut, yang mewakili hari dalam 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 Maksimum 19 posisi
Ukuran penyimpanan 4 byte, diperbaiki.
Akurasi Sebentar
Nilai default 1900-01-01 00:00:00
Kalender Gregorian

(Tidak termasuk rentang lengkap tahun.)
Presisi kedua pecahan yang ditentukan pengguna Tidak
Sadar dan pelestarian offset zona waktu Tidak
Daylight saving aware Tidak

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 smalldatetimedate 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 smalldatetimetime(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 tanggalwaktu, nilai smalldatetime disalin ke nilai tanggalwaktu . Detik pecahan diatur ke 0. Kode berikut menunjukkan hasil konversi nilai menjadi smalldatetimedatetime 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 smalldatetimedatetimeoffset(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 smalldatetimedatetime2(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

A. Casting string literals dengan detik hingga smalldatetime

Contoh berikut membandingkan konversi detik dalam literal string 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
waktu 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

Lihat juga

CAST dan CONVERT (Transact-SQL)