datetime2 (Transact-sql)
24 Saatlik temel Saat ile birlikte tarihi tanımlar. datetime2mevcut bir uzantısı olarak kabul edilebilir datetimedaha geniş bir tarih aralığı, daha büyük varsayılan kesirli duyarlık ve isteğe bağlı kullanıcı tanımlı duyarlık türü.
datetime2 açıklaması
Özellik |
Değer |
---|---|
Sözdizimi |
datetime2 [ (fractional seconds precision) ] |
Kullanım |
declare @ MyDatetime2datetime2(7) create table Table1 (Sütun1 datetime2(7) ) |
Varsayılan dize hazır bilgi biçimi (aşağı düzey istemci için kullanılır) |
yyyy-AA-GG: SS [.fractional saniye] Daha fazla bilgi için bkz: alt düzey istemciler için "geriye dönük uyumluluğu" izleyen bölümde. |
Tarih aralığı |
0001-01-01 ile 9999-12-31 arası Ocak 1,1 31 Aralık 9999 ad üzerinden reklam |
Saat aralığı |
00:00:00 ile 23:59:59.9999999 arası |
Saat dilimi uzaklığı aralığı |
Hiçbiri |
Öğe aralıkları |
yyyy bir yıl gösteren 0001 9999 arasında değişen bir dört basamaklı numarasıdır. mm olduğu belirtilen yıldaki ay gösteren 01 ile 12'ye kadar bir iki basamaklı sayı olarak. GG 01 ile belirtilen ayın gününü gösteren ay, bağlı 31 arasında değişen bir iki basamaklı sayı olduğunu. hh saat temsil 23 için 00 arasında değişen bir iki basamaklı sayı, oluşur. dakikayı gösteren 59 için 00 arasında değişen bir iki basamaklı sayı, AA olur. SS ise ikinci temsil 59 için 00 arasında değişen bir iki basamaklı bir sayıdır. n * Kesirli saniye temsil eden bir sıfır için yedi basamaklı 0 ile 9999999 sayıdır. |
Karakter uzunluğu |
19 pozisyonları en az (yyyy-AA-GG: SS) için en fazla 27 (yyyy-AA-GG hh:mm:ss.0000000) |
Duyarlık, ölçek |
0-7 basamak, ile 100ns doğruluk. Varsayılan duyarlık 7 basamak olduğunu. |
Depolama boyutu |
3 daha az duyarlılıklar için 6 bayt; 7 bayt için duyarlılıklar 3 ve 4. Tüm diğer duyarlılıklar 8 bayt gerektirir. |
Kesinlik |
100 nanosaniye şeklindedir |
Varsayılan değer |
1900-01-01 00:00:00 |
Calendar |
Gregoryen |
Kullanıcı tanımlı kesirli saniye kesinliği |
Evet |
Saat dilimi uzaklığı uyumluluğu ve koruması |
Hayır |
Yaz saati uygulaması uyumluluğu |
Hayır |
Veri türü meta verileri görmek kullanmalısınızsys.typesKatalog (Transact-sql)ya typeproperty (Transact-sql). Duyarlık ve ölçeği biraz Tarih ve Saat veri türleri için değişkendir. Duyarlık ve ölçeği sütun almak için bkz: columnproperty (Transact-sql), col_length (Transact-sql), ya sys.Columns (Transact-sql).
Desteklenen dize Literal biçimleri datetime2 için
Aşağıdaki tablolarda listelenmektedir desteklenen ISO 8601 ve odbc dize hazır bilgi biçimleri için datetime2. Tarih ve saati bölümleri alfabetik, sayısal, unseparated ve zaman biçimleri hakkında bilgi için datetime2bakın tarihi (Transact-sql)ve Saat (Transact-sql).
ISO 8601 |
Açıklamalar |
---|---|
yyyy-mm-ddThh [. nnnnnnn] yyyy-mm-ddThh [. nnnnnnn] |
Bu biçim, set language ve set dateformat oturum yerel ayarlar tarafından etkilenmez. T, İki nokta üst üste (:) ve nokta (.) dize hazır bilgi, örneğin ' 2007 dahil-05-02T19:58:47.1234567'. |
ODBC |
Açıklama |
---|---|
{ts 'yyyy-aa-gg: SS [.fractional saniye]' } |
Belirli odbc API:
|
ANSI ve ISO 8601 Uyumluluğu
ANSI ve ISO 8601 uygunluk tarihi ve zaman geçerli datetime2.
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)
Datetime2 veri türü diğer Tarih ve saat türleri için dönüştürme
Aşağıdaki tabloda ne olacağı açıklanır ne zaman bir datetime2veri 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. Aşağıdaki kod dönüştürme sonuçlarını gösterir bir datetime2(4)değeri bir datedeğer.
|
time(n) |
Saat, dakika, saniye ve Kesirli saniye kopyalanır. Aşağıdaki kod dönüştürme sonuçlarını gösterir bir datetime2(4)değeri bir time(3)değer.
|
datetime |
Tarih ve saat değerleri kopyalanır. Ne zaman kesirli duyarlığını datetimeoffset(n)değeri üç basamak büyük, değer kesilir. Aşağıdaki kod dönüştürme sonuçlarını gösterir bir datetime2değeri bir datetimedeğer.
|
smalldatetime |
Tarih, Saat ve dakika kopyalanır. Saniye, 0 olarak ayarlanır. Aşağıdaki kod dönüştürme sonuçlarını gösterir bir datetime2değeri bir smalldatetimedeğer.
|
datetimeoffset(n) |
datetime2(n)Değeri kopyalanır datetimeoffset(n)değer. Saat dilimi uzaklığı ayarlamak için + 00: 0. Ne zaman duyarlığını datetime2(n)değeri duyarlılığı büyük olduğu datetimeoffset(n)değeri sığdırmak için kesirli kısmı. Aşağıdaki kod dönüştürme sonuçlarını gösterir bir datetime2(5)değeri bir datetimeoffset(3)değer.
|
Dize hazır bilgi datetime2 için 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 datetime2veri türü.
Giriş dize hazır bilgi |
datetime2(n) |
---|---|
ODBC TARİH |
odbc dize hazır bilgi için eşleştirilir datetimeveri türü. odbc DATETIME rakamları herhangi bir atama işlemi datetime2türleri arasında bir örtük dönüştürme 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 |
00: 00: 00 Arası saat bölümünü öntanımlıdır. |
Yalnızca Tarih |
Tarih Bölümü varsayılan olarak 1900-1-1. |
Sadece DİLİMİMİ |
Varsayılan değerler sağlanır. |
TARİH + SAAT |
Önemsiz |
TARİHİ + TIMEZONE |
İzin verilmiyor. |
TIMEZONE_TIME |
Tarih Bölümü varsayılan olarak 1900-1-1. DİLİMİMİ girdi sayılır. |
TARİH + SAAT + TIMEZONE |
Yerel DATETIME kullanılır. |
Ö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 |