DateTime (Transact-sql)
Günün bir saatini 24 saatlik temel kesirli saniye ile birlikte tarihi tanımlar.
[!NOT]
Kullanım time, date, datetime2ve datetimeoffsetveri türleri için yeni iş. Bu türler SQL Standardı ile uyumludur. Daha taşınabilirdirler. time, datetime2 ve datetimeoffset saniyelerde daha fazla kesinlik sağlar. datetimeoffsetGenel olarak dağıtılan uygulamaları için saat dilimi desteği sağlar.
DateTime açıklaması
Özellik |
Değer |
---|---|
Sözdizimi |
datetime |
Kullanım |
declare @ MyDatetimedatetime create table Table1 (Sütun1 datetime) |
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ığı |
1 Ocak 1753, ile 31 Aralık 9999 |
Saat aralığı |
00:00:00 ile 23:59:59.997 arası |
Saat dilimi uzaklığı aralığı |
Hiçbiri |
Öğe aralıkları |
yyyy dört basamaklı bir yıl temsil 9999 aracılığıyla 1753 gelen olur. 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. n * Kesirli saniye temsil 999 için 0 arasında değişen üç basamak sıfırdır. |
Karakter uzunluğu |
19 pozisyonları en az 23 maksimum |
Depolama boyutu |
8 bayt |
Kesinlik |
.000,.003 Ya da.007 saniye artışlarla yuvarlak |
Varsayılan değer |
1900-01-01 00:00:00 |
Calendar |
Gregoryen (tam yıl aralığı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 |
Desteklenen dize Literal biçimleri için datetime
Aşağıdaki tablolarda listelenmektedir Desteklenen dize literal biçimleri datetime. odbc, haricinde datetimedize hazır olan tek tırnak işaretleri ('), örneğin, 'string_literaL'. Çevre ise us_english, dize hazır bilgi n 'string_literaL' biçiminde olmalıdır.
Sayısal |
Açıklama |
---|---|
Tarih biçimleri: [0] 4/15 / [19] 96--(AGY) [0] 4 - 15-[19] 96--(AGY) [0] 4,15.[19] 96--(AGY) [0] 4 / [19] 96/15--(myd) 15 / [0] 4 / [19] 96--(gay) 15 / [19] 96 / [0] 4--(dym) [19] 96/15 / [0] 4--(ydm) [19] 96 / [0] 4/15--(YAG) Saat biçimleri: 14:30 14:30[:20:999] 14:30[:20.9] 4 am 4 PM |
Tarih verileri belirtilen sayısal bir ayda ile belirtebilirsiniz. Örneğin, 5/20/97, Mayıs 1997 yirminci günü temsil eder. Sayısal Tarih biçimini kullandığınızda, bir dize kullanır işareti (/), tire (-) veya ayırıcısı olarak nokta (.) eğik çizgi ay, gün ve yılı belirtin. Bu dize, aşağıdaki formda görünmesi gerekir:
Dil ayarlandığında us_english, AGY Tarih varsayılan sırasını olduğunu. Sen-ebilmek değişmek tarih sırası kullanılarak set dateformat deyimi. set dateformat ayarı, tarih değerlerini nasıl yorumlandığını belirler. Sırası ayarı eşleşmezse, değerleri tarih olarak, çünkü onlar aralık dışında veya değerleri yanlış yorumlandığını yorumlanır değil. Örneğin, 12/10/08 dateformat ayarı bağlı altı tarihleri biri olarak yorumlanabilir. Bir dört yıl yıl olarak yorumlanır. |
Alfabetik |
Açıklama |
---|---|
Nis [il] [15] [,] 1996 Nis [il] 15] [19] 96 Nis [il] 1996 [15] [15] Nis [il] [,] 1996 15 Nis [il] [,] [19] 96 15 [19] 96 Nis [il] [15] 1996 Nis [il] 1996 NİS [IL] [15] [15] 1996 NİS [IL] |
Bir ay tam ay adı olarak belirtilen tarih verileri belirtebilirsiniz. Örneğin, Nisan ya da geçerli dil içinde belirtilen Mar ay kısaltması; virgül isteğe bağlıdır ve büyük harf sayılır. İşte alfabetik tarih biçimleri kullanmak için bazı kurallar vardır:
Ayın alfabetik formunda belirttiğinizde set dateformat oturum ayarı uygulanmaz. |
ISO 8601 |
Açıklama |
---|---|
yyyy-mm-ddThh [.mmm] DD [: SS [.mmm]] |
Örnekler:
ISO 8601 biçiminde kullanmak için her öğenin biçiminde belirtmeniz gerekir. Bu da içerir T, iki nokta üst üste (:) ve nokta (.) biçiminde gösterilir. Köşeli ayraçları ikinci bileşeni kısmını isteğe bağlı olduğunu belirtir. 24 Saatlik biçimde Saat bileşeni belirtildi. t saat kısmını gösterir datetimedeğer. ISO 8601 format kullanmanın avantajı, uluslararası bir standart belirsizliği belirtimiyle olmasıdır. Ayrıca bu biçim tarafından set dateformat etkilenmez veya Dil ayar. |
Unseparated |
Açıklama |
---|---|
DD: SS [.mmm] |
ODBC |
Açıklama |
---|---|
{ts ' 1998-05-02 01:23:56.123' } {d ' 1990-10-02' } {t ' 13: 33:41' } |
odbc API odbc zaman damgası veri aramaları Tarih ve saat değerleri temsil etmek için çıkış sıralarını tanımlar. Bu odbc zaman damgası biçimi de desteklediği ole db dil tanımı (DBGUID-sql) tarafından desteklenen Microsoftiçin ole db sağlayıcısı SQL Server. ado, ole db ve odbc tabanlı API'leri kullanan uygulamalar bu odbc zaman damgası biçimi tarihleri ve saatleri temsil etmek için kullanabilirsiniz. odbc zaman damgası çıkış sıralarını olan biçimi: { literal_type'constant_value' }:
|
DateTime kesirli ikinci duyarlık yuvarlama
datetimedeğerler aşağıdaki tabloda gösterildiği gibi.000,.003 ya da.007 saniye artışlarla yuvarlanır.
Kullanıcı tarafından belirtilen değeri |
Sistem saklı değer |
---|---|
01/01/98 23:59:59.999 |
1998-01-02 00:00:00.000 |
01/01/98 23:59:59.995 01/01/98 23:59:59.996 01/01/98 23:59:59.997 01/01/98 23:59:59.998 |
1998-01-01 23:59:59.997 |
01/01/98 23:59:59.992 01/01/98 23:59:59.993 01/01/98 23:59:59.994 |
1998-01-01 23:59:59.993 |
01/01/98 23:59:59.990 01/01/98 23:59:59.991 |
1998-01-01 23:59:59.990 |
ANSI ve ISO 8601 Uyumluluğu
datetimeANSI veya ISO 8601 uyumlu değil.
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. Tarih ve Saat veri ile cast ve convert işlevlerini kullanma hakkında daha fazla bilgi için bkz: CAST ve CONVERT (Transact-SQL).
Diğer Tarih ve saat türleri datetime dönüştürme
Aşağıdaki tabloda ne olacağı açıklanır ne zaman bir datetimeveri türü diğer Tarih ve Saat veri türleri dönüştürülü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. Saat bileşeni 00:00:00.000 için ayarlanır. Aşağıdaki kod dönüştürme sonuçlarını gösterir bir datedeğeri bir datetimedeğer.
|
time(n) |
Saat bileşeni kopyalanır ve Tarih bileşeni ayarlanır ' 1900-01-01'. Ne zaman kesirli duyarlığını time(n)üç basamak büyük değer, değer sığacak şekilde kesilecek. Aşağıdaki örnek dönüştürme sonuçlarını gösterir bir time(4)değeri bir datetimedeğer.
|
smalldatetime |
Saat ve dakika kopyalanır. Saniye ve Kesirli saniye, 0 olarak ayarlanır. Aşağıdaki kod dönüştürme sonuçlarını gösterir bir smalldatetimedeğeri bir datetimedeğer.
|
datetimeoffset(n) |
Tarih ve Saat bileşenleri kopyalanır. Saat dilimini kesilir. Ne zaman kesirli duyarlığını datetimeoffset(n)değeri üç basamak büyük, değeri kesilecek. Aşağıdaki örnek dönüştürme sonuçlarını gösterir bir datetimeoffset(4)değeri bir datetimedeğer.
|
datetime2(n) |
Tarih ve Saat kopyalanır. Ne zaman kesirli duyarlığını datetime2(n)değeri üç basamak büyük, değeri kesilecek. Aşağıdaki örnek dönüştürme sonuçlarını gösterir bir datetime2(4)değeri bir datetimedeğer.
|
Örnekler
Aşağıdaki örnek, her bir dize vuran sonuçlarını karşılaştırır dateve timeveri tü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';
Sonuç kümesi buradadır.
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 |