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]

  • hh saat dilimi uzaklığı saat sayısını gösteren 14 için 0 ile arasında iki basamaklı ' dir.

  • mm iki basamak, 0 ile ek saat dilimi uzaklığı dakika sayısını gösteren-59 arasında olur.

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.