DATEPART (Transact-SQL)
Belirtilen temsil eden bir tamsayı döndürür datepart belirtilen date.
Tüm genel bakış için Transact-SQLBkz:tarih ve saat veri türleri ve İşlevler, Tarih ve Saat İşlevleri (Transact-SQL).Bilgi ve tarih ve saat veri türleri ve işlevleri ortaktır örnekler için bkz: Tarih ve saat veri kullanma.
Sözdizimi
DATEPART ( datepart , date )
Bağımsız değişkenler
datepart
Parçası olan date (bir tarih veya saat değeri) olan bir integer döndürülür.Aşağıdaki tablo geçerli listeler datepart bağımsız değişkeni.Kullanıcı tanımlı değişken eşdeğerleri geçerli değildir.datepart
Kısaltmalar
year
yy, yyyy
quarter
qq, q
month
mm, m
dayofyear
dy, y
day
dd, d
week
wk, ww
weekday
dw
hour
hh
minute
mi, n
second
ss, s
millisecond
ms
microsecond
mcs
nanosecond
ns
TZoffset
tz
ISO_WEEK
isowk, isoww
date
İçin çözümlenebilir bir ifade bir time, date, smalldatetime, datetime, datetime2, veya datetimeoffset değer.dateifade, sütunifade, kullanıcı tanımlı değişken ya da dize hazır bilgi olabilir.Belirsizlik önlemek için dört basamaklı yıl kullanın.İki basamaklı yılları hakkında daha fazla bilgi için bkz: iki basamaklı yıl kesme seçeneği.
Dönüş Türü
int
Dönüş Değeri
Her datepart ve kendi kısaltmaları aynı değeri.
Dönüş değeri dil ortamı küme kullanarak bağlı Dil ve bunun varsayılan dil oturum açma.date Bir dize literal bazı biçimleri için dönüş değeri kullanarak belirtilen biçimde bağlıdır VBLONGDATE set.tarih tarih ve saat veri türü sütunifade olan AYARLAMAK VBLONGDATE dönüş değeri etkilemez.
Aşağıdaki tablo tüm listeler datepart bağımsız değişkenlerle ilgili dönüş değerleri deyim SELECT DATEPART(datepart,'2007-10-30 12:15:32.1234567 +05:10').Veri türü date bağımsız değişkeni datetimeoffset(7).nanoseconddatepart Dönüş değeri olan bir ölçek 9 (. 123456700) ve son iki konum her zaman 00.
datepart |
Dönüş değeri |
---|---|
year, yyyy, yy |
2007 |
quarter, qq, q |
4 |
month, mm, m |
10 |
dayofyear, dy, y |
303 |
day, dd, d |
30 |
week, wk, ww |
45 |
weekday, dw |
1 |
hour, hh |
12 |
minute, n |
15 |
second, ss, s |
32 |
millisecond, ms |
123 |
microsecond, mcs |
123456 |
nanosecond, ns |
123456700 |
TZoffset, tz |
310 |
hafta içi ve hafta datepart değişkenleri
Zaman datepart olan week ()wk, ww) veya weekday ()dw), dönüş değeri küme kullanarak değeri bağlıdır set datefirst.
Her yılın 1 Ocak başlangıç numarasını tanımlar weekdatepart, örneğin: datepart (wk, ' 1 Ocak'ta xxxx') = 1, burada xxxx her yıl.
Aşağıdaki tablo listeleri için dönen değer week ve weekdaydatepart için ' 2007-04-21 ' Her set DATEFIRST bağımsız değişkeni için.1 Ocak 2007 yılında Pazar günüdür.21 Nisan Cumartesi 2007 yılında olur.set DATEFIRST 7, Pazar, ABD için varsayılan değerdirİngilizce.
SET DATEFIRST bağımsız değişken |
hafta döndürüldü |
iş günü döndürüldü |
---|---|---|
1 |
16 |
6 |
2 |
17 |
5 |
3 |
17 |
4 |
4 |
17 |
3 |
5 |
17 |
2 |
6 |
17 |
1 |
7 |
16 |
7 |
Yıl, ay ve gün datepart değişkenleri
datepart için döndürülen değerleri (year, date), datepart (month, date) ve datepart (day, date) aynı işlevleri tarafından döndürülen yıl, ay, ve gün, f sırasıyla.
ISO_WEEK datepart
ISO 8601 ISO haftatarih sistemi, bir hafta numaralandırma sistemini içerir.Her hafta Perşembe oluştuğu yıl ile ilişkilidir.Örneğin, 2004 (2004W01) 1 haftanın Pazartesi 29 Aralık 2003'ten Pazar, 4 Ocak 2004'e kaldı.En yüksek hafta numarasını bir yılda 52 veya 53 olabilir.Bu stil numaralandırma genellikle Avrupa ülkelerinde, ancak nadiren başka yerlerde kullanılır.
Farklı ülkelerde/bölgelerde numaralandırma sistemini ISO standart uyumlu olmadığı.Aşağıdaki tablogösterildiği gibi en az altı olasılık vardır
Haftanın ilk günü |
Yılın ilk haftası içerir |
İki kez atanan hafta |
Tarafından/kullanılan |
---|---|---|---|
Pazar |
1 Ocak İlk Cumartesi yıl sayısı için 1–7 arası gün |
Evet |
ABD |
Pazartesi |
1 Ocak İlk Pazar yıl sayısı için 1–7 arası gün |
Evet |
Çoğu Avrupa ve Birleşik Krallık |
Pazartesi |
4 Ocak İlk Perşembe yıl sayısı için 4–7 arası gün |
Hayır |
ISO 8601, Norveç ve İsveç |
Pazartesi |
7 Ocak İlk Pazartesi günü yılın 7 gün |
Hayır |
|
Çarşamba |
1 Ocak İlk Salı yıl sayısı için 1–7 arası gün |
Evet |
|
Cumartesi |
1 Ocak İlk Cuma yıl sayısı için 1–7 arası gün |
Evet |
TZoffset
TZoffset ()tz) (İmzalı) dakika sayısı olarak döndü.Aşağıdaki deyim , 310 dakika bir saat dilimi uzaklığı döndürür.
SELECT DATEPART (TZoffset, 2007-05-10 00:00:01.1234567 +05:10);
datepart Bağımsız değişkeni TZoffset ()tz) ve date olmayan bağımsız değişken değil, datetimeoffset veri türü null döner.
Bir datepart değil yani tarih bağımsız değişkeni için varsayılan iade
Veri türünü, date bağımsız değişkeni belirtilen yok datepart, varsayılan değer, datepart döndürülür.
Örneğin, varsayılan yıl-ay-gün herhangi date veri türü olan 1900-01-01.tarih bölümü bağımsız değişkenleri aşağıdaki deyim olan datepart, bir saat bağımsız değişkeni için dateve 1900, 1, 1, 1, 2.
SELECT DATEPART(year, '12:10:30.123')
,DATEPART(month, '12:10:30.123')
,DATEPART(day, '12:10:30.123')
,DATEPART(dayofyear, '12:10:30.123')
,DATEPART(weekday, '12:10:30.123');
Varsayılan saat-dakika-saniye için time veri türü olan 00: 00:00.saat bölümü bağımsız değişkenleri aşağıdaki deyim olan datepart, bir tarih bağımsız değişkeni için dateve 0, 0, 0.
SELECT DATEPART(hour, '2007-06-01')
,DATEPART(minute, '2007-06-01')
,DATEPART(second, '2007-06-01');
Kesirli saniye
Kesirli saniye aşağıdaki tablolarda gösterildiği gibi döndürülür:
SELECT DATEPART(millisecond, '00:00:01.1234567'); -- Returns 123
SELECT DATEPART(microsecond, '00:00:01.1234567'); -- Returns 123456
SELECT DATEPART(nanosecond, '00:00:01.1234567'); -- Returns 123456700
Açıklamalar
datepart seçme listesinde kullanılabilir nerede, HAVING, by ve order by yan tümceleri GRUPLANDIRMAK.De SQL Server 2008, datepart örtülü olarak çevirir ve dize hazır olarak datetime2 türleri.datepart dateadd ile kullanırken, düz dize kümesinde örtülü yayınları kaçının.Daha fazla bilgi için, bkz. DATEADD (Transact-SQL).
Örnekler
Aşağıdaki örnek, temel yılı verir.Temel yıl tarih hesaplamaları için yararlıdır.Örnekte, tarih sayı olarak belirtilir.Dikkat SQL Server 1 Ocak 1900 0 yorumlar.
SELECT DATEPART(year, 0), DATEPART(month, 0), DATEPART(day, 0);
-- Returns: 1900 1 1 */