küçük tarih saat (Transact-SQL)
Günün bir saati ile birleştirilmiş bir tarih tanımlar. Zaman 24 saatlik bir günü temel alır, saniyeler her zaman sıfırdır (:00) ve kesirli saniye yoktur.
[!NOT]
Yeni iş için time, date, datetime2 ve datetimeoffset veri türlerini kullanın. Bu türler SQL Standardı ile uyumludur. Daha taşınabilirdirler. time, datetime2 ve datetimeoffset saniyelerde daha fazla kesinlik sağlar. datetimeoffset, küresel olarak dağıtılan uygulamalarda saat dilimi desteği sağlar.
smalldatetime Açıklaması
Sözdizimi |
smalldatetime |
Kullanım |
DECLARE @MySmalldatetime smalldatetime CREATE TABLE Tablo1 ( Sütun1 smalldatetime ) |
Varsayılan dize hazır değeri biçimleri (aşağı düzey istemci için kullanılır) |
Geçerli değildir |
Tarih aralığı |
1900-01-01 ile 2079-06-06 arası 1 Ocak 1900 ile 6 Haziran 2079 |
Saat aralığı |
00:00:00 ile 23:59:59 arası 2007-05-09 23:59:59 şu değere yuvarlanır: 2007-05-10 00:00:00 |
Öğe aralıkları |
YYYY, 1900 ile 2079 arasında değişen, bir yılı temsil eden dört rakamdır. MM, 01 ile 12 arasında değişen, belirtilen yılın bir ayını temsil eden iki rakamdır. DD, aya bağlı olarak 01 ile 31 arasında değişen, belirtilen ayın bir gününü temsil eden iki rakamdır. hh, 00 ile 23 arasında değişen, saati temsil eden iki rakamdır. mm, 00 ile 59 arasında değişen, dakikayı temsil eden iki rakamdır. ss, 00 ile 59 arasında değişen, saniyeyi temsil eden iki rakamdır. 29,998 saniye veya daha düşük olan değerler bir önceki en yakın dakikaya, 29,999 saniye veya daha büyük olan değerler bir sonraki en yakın dakikaya yuvarlanır. |
Karakter uzunluğu |
En çok 19 hane |
Depolama boyutu |
4 bayt, sabit. |
Kesinlik |
Bir dakika |
Varsayılan değer |
1900-01-01 00:00:00 |
Calendar |
Gregoryen (Tam yıl aralıklarını içermez.) |
Kullanıcı tanımlı kesirli saniye kesinliği |
Hayır |
Saat dilimi uzaklığı uyumluluğu ve koruması |
Hayır |
Yaz saati uygulaması uyumluluğu |
Hayır |
ANSI ve ISO 8601 Uyumluluğu
smalldatetime ANSI veya ISO 8601 uyumlu değildir.
Tarih ve Saat Verilerini Dönüştürme
Tarih ve saat veri türlerini dönüştürdüğünüzde, SQL Server, tarih ve saat olarak algılayamadığı tüm değerleri reddeder. CAST ve CONVERT işlevlerini tarih ve saat verileriyle kullanma hakkında daha fazla bilgi için, bkz. CAST ve CONVERT (Transact-SQL).
smalldatetime Türünü Diğer Tarih ve Saat Türlerine Dönüştürme
Aşağıdaki tablo bir smalldatetime veri türü diğer tarih ve saat veri türlerine dönüştürüldüğünde ne olduğunu açıklamaktadır.
Değerin dönüştürüleceği veri türü |
Dönüştürme ayrıntıları |
---|---|
date |
Yıl, ay ve gün kopyalanır. Aşağıdaki kod bir smalldatetime değerini bir date değerine dönüştürmenin sonuçlarını göstermektedir.
|
time(n) |
Saat, dakika ve saniye kopyalanır. Kesirli saniyeler 0'a ayarlanır. Aşağıdaki kod bir smalldatetime değerini bir time(4) değerine dönüştürmenin sonuçlarını göstermektedir.
|
datetime |
smalldatetime değeri datetime değerine kopyalanır. Kesirli saniyeler 0'a ayarlanır. Aşağıdaki kod bir smalldatetime değerini bir datetime değerine dönüştürmenin sonuçlarını göstermektedir.
|
datetimeoffset(n) |
smalldatetime değeri datetimeoffset(n) değerine kopyalanır. Kesirli saniyeler 0'a, saat dilimi uzaklığı ise +00:0'a ayarlanır. Aşağıdaki kod bir smalldatetime değerini bir datetimeoffset(4) değerine dönüştürmenin sonuçlarını göstermektedir.
|
datetime2(n) |
smalldatetime değeri datetime2(n) değerine kopyalanır. Kesirli saniyeler 0'a ayarlanır. Aşağıdaki kod bir smalldatetime değerini bir datetime2(4) değerine dönüştürmenin sonuçlarını göstermektedir.
|
Örnekler
A.Saniyeleri olan dize hazır değerlerini smalldatetime'a dönüştürme
Aşağıdaki örnek bir dize hazır değerindeki saniyelerin smalldatetime türüne dönüştürülmesini karşılaştırmaktadır.
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);
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);
Girdi |
Çıktı |
---|---|
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.Tarih ve saat verilerini türlerini karşılaştırma
Aşağıdaki örnek bir dizeyi dönüştürmenin sonuçlarını her tarih ve saat veri türü ile karşılaştırmaktadır.
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';
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';
Veri türü |
Çıktı |
---|---|
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 |