saat (Transact-SQL)
Bir saat bir günün tanımlar.Süre saat dilimi tanıma, 24 saatlik temel alır.
Tüm genel bakış için Transact-SQL Tarih ve saat veri türü ve işlevler, bkz: Tarih ve saat veri türleri ve işlevler (Transact-SQL). Bilgi ve tarih ve saat veri türü ve işlevleri için ortak olan bir örnek için bkz: Tarih ve saat veri kullanma.
saat açıklaması
Özellik |
Değer |
---|---|
Sözdizimi |
time [ (fractional second precision) ] |
Kullanım |
@ MyTime BILDIRIN. time(7) tablo Table1 CREATE (Sütun1 time(7) ) |
fractional seconds precision |
Basamak saniye için kesirli kısmını belirtir. Bu işlem, 7 0 arasında bir tamsayı olabilir. Varsayılan ondalık duyarlık, 7 (100ns) olur. |
Kullanım |
@ MyTime BILDIRIN. time(7) tablo Table1 CREATE (Sütun1 time(7) ) |
Varsayılan harflerden oluşan dize biçimi (kullanılan kapalı-düzey istemci) |
ss: dd: SS [.nnnnnnn] Daha fazla bilgi için bkz: "geri uyumluluk için kapalı-istemcilerini düzey" bölümü Tarih ve saat veri kullanma. |
Aralık |
00:00:00.0000000 23:59:59.9999999 aracılığıyla |
Öğe aralıkları |
hh saat temsil eden 23 için 0 ile arasında iki basamaklı ' dir. mm iki basamak, dakikayı temsil eden 59, 0 ile arasında olur. ss iki basamak, saniyeyi temsil eden 59, 0 ile arasında olur. n * kesirli saniye temsil eden 9999999 için 0 ile arasında yedi basamağa sıfırdır. |
Karakter uzunluğu |
en fazla 16 (hh:mm:ss.nnnnnnn) 8 pozisyonlar en az (ss: dd: ss) |
Duyarlık, Ölçek (kullanıcı, yalnızca ölçek belirtir) |
Belirtilen ölçekSonuç (duyarlık, Ölçek)Sütun uzunluğunu (bayt)Kesir saniye duyarlık
time (16,7)57
time(0) (8,0)30-2
time(1) (10,1)30-2
time(2) (11,2)30-2
time(3) (12,3)43-4
time(4) (13,4)43-4
time(5) (14,5)55-7
time(6) (15,6)55-7
time(7) (16,7)55-7
|
Depolama boyutu |
Sabit, 5 bayt 100ns kesirli ikinci duyarlık varsayılan varsayılan olur. |
Doğruluğu |
100 nanosaniye şeklindedir |
Varsayılan değer |
00:00:00 Bu değer, eklenmiş bir saat bölümü örtülü dönüşüm için kullanılır date için datetime2 veya datetimeoffset. |
Kullanıcı tanımlı kesirli ikinci duyarlığı |
Evet |
Saat dilimi uzaklığı tanımayan ve koruma |
Hayır |
Gün ışığından yararlanma saatine bilgisi kaydediliyor |
Hayır |
Desteklenen dize literal biçimler saat
Aşağıdaki tablo geçerli dize literal biçimleri gösterir time veri türü.
SQL Server |
Açıklama |
---|---|
ss: dd [: ss] [: kesirli saniye] [/ DE] [PM] ss: dd [: ss] [.fractional saniye] [/ DE] [PM] hhAM [PM] hh'de [PM] |
Saat değeri 0 gösteren saat gece yarısından sonra (AM) mi bakılmaksızın ÖÖ belirtilir.Saat, 0'a eşit olduğunda, PM belirtilemez. 01-11 Saat değerleri, ne AM veya PM olarak belirtilirse, saat öğleden önce temsil eder.Saat öğleden önce göstermek, AM belirtilir.PM belirtilirse, öğleden sonraki saatler değerleri gösterir. 12 Saat değeri ne AM veya PM olarak belirtilirse, öğleden başlatan bir saat gösterir.AM, gece yarısı başlayacak bir saat değerini gösteren belirtilir.PM belirtilmemişse, değer öğlen başladığı saati temsil eder.Örneğin, 12: 01 PM; olarak 12: 01, öğleden sonra 1 dakika, gece yarısından sonra 12: 01'de bir dakikadır.12: 01'De belirtme 00: 01 veya 00: 01'de aynıdır. 13-23 Saat değerleri, AM veya PM belirtilmezse, öğleden sonraki saatler temsil eder.Değerleri, öğleden PM, belirtilen saat de gösterir.' De, 13-23 saat değeri olduğunu belirtilemez. Bir 24 saat değeri geçerli değil.Gece yarısından temsil etmek için , 12: 00'de veya 00: 00'ı kullanın. Milisaniye ya da üste öncesinde (:) veya nokta (.).Sayı, iki nokta üst üste işareti kullanılırsa, saniye olarak thousandths anlamına gelir.Nokta kullanılırsa, tek bir basamaklı saniye, onda anlamına gelir, iki basamaklı saniye, salise anlamına gelir ve üç basamaklı saniye, thousandths anlamına gelir.Örneğin, 20 12:30:20:1'ni gösterir ve geçmişteki bir 922.337.203.685.477,5707 saniye 12: 30; 12:30:20.1 20 ve birini gösterir - tenth 12: 30 saniye. |
iso 8601 |
Notları |
---|---|
ss: dd: ss ss: dd [: ss] [.fractional saniye] |
|
ODBC |
Notları |
---|---|
{t 'ss: dd: SS [.fractional saniye]'} |
Belirli ODBC API. Işlevleri SQL Server 2008 gibi SQL Server 2005. |
ANSI ve ISO 8601 standartları ile uyumluluk saat
Gece yarısı ve artık ikinci üzerinde 59 ISO 8601 (5.3.2 ve 5.3) tarafından tanımlanan göstermek için saat 24 kullanarak olmayan desteklenen geriye dönük uyumluluk özelliğini içerecek biçimde ve tutarlı bir varolan tarih ve saat türü.SQL standart 2003 tarafından tanımlanmaz.
(Alt düzey istemci için kullanılır) varsayılan dize literal biçimi SS: dd: SS [.nnnnnnn] tanımlanır SQL standart form hizalar.Bu biçim, kesirli saniye hariç saat ISO 8601 tanımı benzer.
Örnekler
C.Tarih ve saat veri türlerini karşılaştırma
Aşağıdaki örnek bir dize her çevrim sonuçlarını karşılaştırır. date ve time veri 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';
Veri türü |
Output |
---|---|
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 |
b.Geçerli saat dize rakamları saat(7) sütun ekleme
Aşağıdaki tablo, veri türünde bir sütuna eklenen farklı bir dize hazır bilgi listeler. time(7) sonra bu sütunda depolanan değerlerle.
Dize hazır bilgi biçim türü |
Eklenen dize |
depolanan saat(7) değeri |
Açıklama |
---|---|---|---|
SQL Server |
'01:01:01:123 AM' |
01:01:01.1230000 |
Iki nokta üst üste (:) gelir önce kesirli saniye duyarlık, Ölçek, üç pozisyonlar geçemez veya hataya neden oldu. |
SQL Server |
'01:01:01.1234567 AM' |
01:01:01.1234567 |
AM veya PM belirtilen saati 24 saat biçiminde AM veya PM hazır bilgi olmadan depolanır |
SQL Server |
'01:01:01.1234567 PM' |
13:01:01.1234567 |
AM veya PM belirtilen saati 24 saat biçiminde AM veya PM hazır bilgi olmadan depolanır |
SQL Server |
'01:01:01.1234567 PM' |
13:01:01.1234567 |
AM veya PM önce boşluk isteğe bağlıdır. |
SQL Server |
'AM. 01' |
01:00:00.0000000 |
Yalnızca saat belirtilen tüm değerleri 0 olur. |
SQL Server |
'AM. 01' |
01:00:00.0000000 |
AM veya PM önce boşluk isteğe bağlıdır. |
SQL Server |
'01:01:01' |
01:01:01.0000000 |
Kesirli saniye duyarlık belirtildiğinde, veri türü tarafından tanımlanan her bir konum 0'dır. |
iso 8601 |
'01:01:01.1234567' |
01:01:01.1234567 |
ISO 8601 ile uymak için , 24 saat biçiminde AM veya PM değil) kullanın. |
iso 8601 |
'01:01:01.1234567 +01:01' |
01:01:01.1234567 |
Isteğe bağlı bir saat dilimi farkı (TZD) giriş izin verilir, ancak değil olarak saklanır. |
c.Her sütun, tarih ve saat, tarih türü dize literal saat ekleme
Aşağıdaki tablo zaman dize hazır bilgi bir veritabanına eklenecek ilk sütun gösterir tablo sütun ikinci sütunda gösterilen tarih veya saat veri türü.Üçüncü sütunun veritabanında depolanacak olan değeri gösterir tablo sütun.
Eklenen dize |
Sütun veri türü |
Sütunda depolanan değeri |
Açıklama |
---|---|---|---|
'12:12:12.1234567' |
time(7) |
12:12:12.1234567 |
Kesirli saniye duyarlık sütun için belirtilen değeri aşarsa, dize hatasız fazlalıklar atılacak. |
'2007-05-07' |
date |
null |
Herhangi bir saat değeri, INSERT deyim başarısız olmasına neden olur. |
'12:12:12' |
smalldatetime |
1900-01-01 12:12:00 |
Kesirli saniye duyarlık değeri, INSERT deyim başarısız olmasına neden olur. |
'12:12:12.123' |
datetime |
1900-01-01 12:12:12.123 |
Üç pozisyonlar uzun ikinci duyarlık INSERT deyim başarısız olmasına neden olur. |
'12:12:12.1234567' |
datetime2(7) |
1900-01-01 12:12:12.1234567 |
Kesirli saniye duyarlık sütun için belirtilen değeri aşarsa, dize hatasız fazlalıklar atılacak. |
'12:12:12.1234567' |
datetimeoffset(7) |
1900-01-01 12:12:12.1234567 +00:00 |
Kesirli saniye duyarlık sütun için belirtilen değeri aşarsa, dize hatasız fazlalıklar atılacak. |
See Also