tarihi (Transact-sql)
Bir tarihi tanımlar.
Açıklama tarihi
Özellik |
Değer |
---|---|
Sözdizimi |
date |
Kullanım |
declare @ MyDatedate create table Table1 (Sütun1 date) |
Varsayılan dize hazır bilgi biçimi (aşağı düzey istemci için kullanılır) |
YYYY-AA-GG Daha fazla bilgi için bkz: alt düzey istemciler için "geriye dönük uyumluluğu" izleyen bölümde. |
Aralık |
0001-01-01 ile 9999-12-31 arası 1 Ocak 1 a.d. Aralık 31, 9999 m.s. |
Öğe aralıkları |
yyyy 0001 gelen dört basamaklı bir yıl temsil 9999 olur. mm belirtilen yıldaki ay gösteren 12 01 iki basamaktan oluşur. dd, belirtilen ayın gününü gösteren ay, bağlı 31 01-iki basamaktan oluşur. |
Karakter uzunluğu |
10 pozisyon |
Duyarlık, ölçek |
10, 0 |
Depolama boyutu |
Sabit 3 bayt |
Depolama yapısı |
1, 3-bayt tamsayı tarihini depolar. |
Kesinlik |
Bir gün |
Varsayılan değer |
1900-01-01 Bu değer eklenmiş Tarih Bölümü örtük dönüştürme için kullanılan timeiçin datetime2veya datetimeoffset. |
Calendar |
Gregoryen |
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 tarihi
Aşağıdaki tablolarda geçerli dize hazır bilgi biçimleri göster dateveri türü.
Sayısal |
Açıklama |
---|---|
mdy [m] m/dd/yy [yy] [m] m - dd-[yy] yy [m]m.dd.[yy] yy MYD mm / [yy] yy/GG mm-[yy] yy/GG [m. [yy] yy.dd m] Gay dd / [m] m / [yy] yy dd-[m] m [yy] yy gg [m] m. [yy] yy dym gg / yy [yy] / [m] m dd-[yy] yy-[m] m gg [yy] yy.[m] m Yag [yy] yy / [m] m/GG [yy] yy-[m] m-dd [yy] yy-[m] m-dd |
[m] m, GG ve [yy] yy temsil ay, gün ve yıl içinde bir dize ile eğik çizgi işareti (/), tire (-) veya ayırıcısı olarak nokta (.). Sadece dört veya iki basamaklı yıl desteklenir. Dört basamaklı yıl mümkün olduğunda kullanın. Dört basamaklı yıl olarak iki basamaklı yılları yorumlamak için kesme yılı gösteren tamsayı 0001 den 9999 belirtmek için kullanın Yapılandırma iki basamaklı yıl kesme sunucu yapılandırma seçeneği. Aynı yüzyılda kesme yıl olarak bir iki basamaklı yıl kesme yılın son iki basamağını eşit veya daha az ise. Yüzyılda kesme bir yıl önce gelen bir iki basamaklı yıl kesme yılın son iki basamağını büyük olduğunu. Örneğin, iki basamaklı yıl kesme 2049 varsayılan ise, iki basamaklı yıl 49 2049 ve 50 1950 yorumlanan iki basamaklı yıl olarak yorumlanır. Varsayılan tarih biçimi, geçerli dil ayarı tarafından belirlenir. Tarih biçimini kullanarak değiştirebileceğiniz Dil ve set dateformat deyimleri. ydmBiçimi desteklenmiyor date. |
Alfabetik |
Açıklama |
---|---|
Sun [GG] [,] yyyy Pzt dd] [yy] yy Sun yyyy [GG] [GG] mon] yyyy DD Sun [,] [yy] yy gg [yy] yy Sun [GG] yyyy Sun yyyy Sun [GG] YYYY [GG] Thu |
montam ay adını veya geçerli dilde verilen ayın kısaltmasını temsil eder. Virgül isteğe bağlıdır ve büyük harf sayılır. Belirsizlikten kaçınmak için dört rakamlı yıllar kullanın. Ayın ilk günü, gün eksik varsa sağlanır. |
ISO 8601 |
Açıklama |
---|---|
YYYY-AA-GG DD |
sql standardına ile aynıdır. Bu uluslararası bir standart tanımlanan tek biçimidir. |
Unseparated |
Açıklama |
---|---|
yyaagg [yy] YYYY [mm] [GG] |
dateVerileri, dört, altı veya sekiz basamaklı belirtilebilir. Altı veya sekiz haneli dize her zaman yorumlanır ymd. Ay ve gün her zaman iki basamak olmalıdır. Dört basamaklı dize yıl olarak yorumlanır. |
ODBC |
Açıklama |
---|---|
{d 'yyyy-aa-gg' } |
Belirli odbc API. Çalışan SQL Server 2012gibi SQL Server 2005. |
W3C xml biçimi |
Açıklama |
---|---|
YYYY-mm-ddTZD |
Özellikle xml ve soap kullanım için desteklenir. tzd olan saat dilimi göstergesi (z veya + SS: dd veya - hh: mm):
|
ANSI ve ISO 8601 Uyumluluğu
dateANSI sql standardında Gregoryen takvimi ile uyumludur: "Not 85 - Datetime veri türleri tarihleri Gregoryen biçiminde Tarih aralığı 0001–01–01 ce 0001–01–01 ce aracılığıyla depolanmasını sağlayacak."
Aşağı düzey istemciler için kullanılan varsayılan dize hazır bilgi biçimi yyyy-AA-GG tanımlanan sql standart form ile uyumludur Bu biçim, Tarih ISO 8601 tanımı aynıdır.
Aşağı düzey istemciler için geriye dönük uyumluluk
Bazı alt düzey istemci desteği time, date, datetime2ve datetimeoffset veri türlerini. Aşağıdaki tablo arasındaki üst düzey bir örneğini türü eşleme gösterir SQL Serverve aşağı düzey istemciler.
SQL Server 2012veri türü |
Alt düzey istemci için varsayılan dize hazır bilgi biçimi geçti |
Alt düzey odbc |
Alt düzey oledb |
Alt düzey odbc |
Alt düzey SQLCLIENT |
---|---|---|---|---|---|
time |
: dd: SS [. nnnnnnn] |
sql_wvarchar veya sql_varchar |
DBTYPE_WSTRor dbtype_str |
Java.SQL.String |
Dize veya SqString |
date |
YYYY-AA-GG |
sql_wvarchar veya sql_varchar |
DBTYPE_WSTRor dbtype_str |
Java.SQL.String |
Dize veya SqString |
datetime2 |
yyyy-AA-GG: SS [. nnnnnnn] |
sql_wvarchar veya sql_varchar |
DBTYPE_WSTRor dbtype_str |
Java.SQL.String |
Dize veya SqString |
datetimeoffset |
yyyy-AA-GG: SS [. nnnnnnn] [+ |-] SS: dd |
sql_wvarchar veya sql_varchar |
DBTYPE_WSTRor dbtype_str |
Java.SQL.String |
Dize veya SqString |
Tarih ve Saat Verilerini Dönüştürme
Tarih ve Saat veri türleri için dönüştürdüğünüzde SQL Servercant tanımak Tarih veya saat olarak 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 için dönüştürme tarihi
Aşağıdaki tabloda ne olacağı açıklanır ne zaman bir dateveri 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ı |
---|---|
time(n) |
Dönüştürme başarısız olur ve hata iletisi 206 geçirilen: "Operand türü clash: tarihi, zaman uyumlu değil". |
datetime |
Tarih kopyalanır. Aşağıdaki kod dönüştürme sonuçlarını gösterir bir datedeğeri bir datetimedeğer.
|
smalldatetime |
Ne zaman datedeğerdir aralığındaki bir smalldatetime, Tarih bileşeni kopyalanır ve Saat bileşeni 00:00:00.000 için ayarlanır. Ne zaman datedeğerdir aralığı dışında bir smalldatetimedeğer, hata iletisi 242 geçirilen: "smalldatetime veri türü Tarih veri türü dönüştürme sonuçlandı içinde bir dışarı Aralık değeri."; ve smalldatetimedeğeri null olarak ayarlanır. Aşağıdaki kod dönüştürme sonuçlarını gösterir bir datedeğeri bir smalldatetimedeğer.
|
datetimeoffset(n) |
Tarih kopyalanır ve saati ayarlamak için 00:00.0000000 + 00: 00. Aşağıdaki kod dönüştürme sonuçlarını gösterir bir datedeğeri bir datetimeoffset(3)değer.
|
datetime2(n) |
Tarih bileşeni kopyalanır ve Saat bileşeni 00:00. 000000 ayarlanır. Aşağıdaki kod dönüştürme sonuçlarını gösterir bir datedeğeri bir datetime2(3)değer.
|
Dize hazır bilgi Tarih dönüştürme
Eğer tüm parçaları dizeleri geçerli biçimlerde dönüşümleri dize hazır bilgi Tarih ve saat türleri için izin verilir. Aksi takdirde, bir çalışma zamanı hatası ortaya çıkar. Örtülü Dönüştürmelere veya bir stil, dize hazır bilgi Tarih ve saat türleri belirtmeyen açık dönüştürmeleri geçerli oturumu varsayılan biçiminde olacaktır. Aşağıdaki tablo bir dize dönüştürme kuralları için hazır gösterir dateveri türü.
Giriş dize hazır bilgi |
date |
---|---|
ODBC TARİH |
odbc dize hazır bilgi için eşleştirilir datetimeveri türü. odbc DATETIME rakamları herhangi bir atama işleminin bir datetürü bir örtük dönüştürme arasında neden olur datetimeve bu tür dönüştürme kuralları tarafından tanımlanan. |
ODBC ZAMAN |
Bakın önceki odbc tarih kuralı. |
ODBC DATETIME |
Bakın önceki odbc tarih kuralı. |
Yalnızca Tarih |
Önemsiz |
Yalnızca Tarih |
Varsayılan değerler sağlanır. |
Sadece DİLİMİMİ |
Varsayılan değerler sağlanır. |
TARİH + SAAT |
Giriş dizesi zaman parçası kullanılır. |
TARİHİ + TIMEZONE |
İzin verilmiyor. |
TIMEZONE_TIME |
Varsayılan değerler sağlanır. |
TARİH + SAAT + TIMEZONE |
Yerel DATETIME zaman parçasını kullanılacak. |
Örnekler
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';
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 |