Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Azure Synapse Analytics
Analytics Platform Sistemi (PDW)
Microsoft Fabric'te SQL Veritabanı
Bu fonksiyon, belirtilen tarihin bir tam sayısını temsil eder.
Tüm Transact-SQL tarih ve saat veri türlerine ve işlevlerine genel bakış için bkz. Tarih ve Saat Veri Türleri ve İşlevleri (Transact-SQL).
Transact-SQL söz dizimi kuralları
Sözdizimi
DATEPART ( datepart , date )
Arguments
datepart
Tarih argümanının DATEPART belirli kısmı tam sayı döndürecektir. Bu tabloda tüm geçerli tarih bölümü bağımsız değişkenleri listelenir.
Uyarı
DATEPARTdatepart argümanları için kullanıcı tanımlı değişken eşdeğerlerini kabul etmez.
| datepart | Abbreviations |
|---|---|
| yıl | Yyy, yyyy |
| çeyrek | qq, q |
| ay | Mm, m |
| dayofyear | Dy, y |
| gün | dd, d |
| hafta | wk, ww |
| hafta içi | Dw |
| saat | hh |
| dakika | mi, n |
| saniye | ss, s |
| milisaniye | Ms |
| Microsecond | Mcs |
| Içerir | Ns |
| tzoffset | tz |
| iso_week | isowk, isoww |
date
Aşağıdaki veri türlerinden birine çözümlenen bir ifade:
- date
- datetime
- datetimeoffset
- datetime2
- smalldatetime
- time
TarihDATEPART için bir sütun ifadesi, ifade, dize değişmez değeri veya kullanıcı tanımlı değişken kabul eder. Belirsizlik sorunlarını önlemek için dört basamaklı yılları kullanın. İki basamaklı yıllar hakkında bilgi için bkz. İki basamaklı yıl kesme Sunucusu Yapılandırma Seçeneğini yapılandırma .
Dönüş Türü
int
Dönüş Değeri
Her datepart ve kısaltmaları aynı değeri döndürür.
Dönüş değeri, SET LANGUAGE kullanılarak belirlenen dil ortamına ve girişin varsayılan dili Yapılandırma Sunucusu Yapılandırma Seçeneğine bağlıdır. Döndürme değeri, tarih bazı formatların bir dizi literali ise, SET DATEFORMAT'a bağlıdır. SET DATEFORMAT, tarih bir tarih veya saat veri türünün sütun ifadesi olduğunda döndürme değerini değiştirmez.
Bu tablo, tüm datepart argümanlarını, karşılık gelen döndürme değerleriyle birlikte SELECT DATEPART(datepart,'2007-10-30 12:15:32.1234567 +05:10')listeler.
Tarih argümanı datetimeoffset(7) veri tipine sahiptir.
Nanosaniyetarih parçası iade değerinin son iki konumu her zaman 00 olur ve bu değerin 9 ölçeği vardır:
.123456700
| datepart | Dönüş değeri |
|---|---|
| yıl, yyyy, yy | 2007 |
| çeyrek, qq, q | 4 |
| ay, mm, m | 10 |
| Dayofyear, Dy, Y | 303 |
| gün, dd, d | 30 |
| hafta, hafta, ww, ww | 44 |
| hafta içi gün, DW | 3 |
| saat, hh | 12 |
| dakika, n | 15 |
| ikinci, ss, s | 32 |
| milisaniye, ms | 123 |
| mikrosaniye, MCS | 123456 |
| nanosaniye, ns | 123456700 |
| tzoffset, tz | 310 |
| iso_week, isowk, isoww | 44 |
Hafta ve hafta içi tarih tartışmaları
Bir haftalık (wk, ww) veya hafta içi (dw) datepart için, iade DATEPART değeri SET DATEFIRST'in belirlediği değere bağlıdır.
Her yılın 1 Ocak'ı, haftatarih kısmı için başlangıç numarasını belirler. Örneğin:
DATEPART (wk, '1 Ocak, xxxx') = 1
burada xxxx herhangi bir yıldır.
Bu tablo, her SET DATEFIRST argümanı için '2007-04-21' için hafta ve hafta içitarih parçasının iade değerini gösterir. 1 Ocak 2007 Pazartesi gününe denk geliyor. 21 Nisan 2007, Cumartesi gününe denk geliyor. ABD İngilizcesi için,
SET DATEFIRST 7 -- ( Sunday )
varsayılan olarak hizmet verir. DATEFIRST ayarını yaptıktan sonra, datepart tablo değerleri için önerilen bu SQL ifadesini kullanın:
SELECT DATEPART(week, '2007-04-21 '), DATEPART(weekday, '2007-04-21 ')
| ÖNCE TARIH BELIRLENİN. tartışma |
hafta Döndürülen |
hafta içi Döndürülen |
|---|---|---|
| 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 tarih bölüm Argümanlar
DATEPART (yıl, tarih), DATEPART (ay, tarih) ve DATEPART (gün, tarih) için döndürülen değerler, sırasıyla YEAR, AY ve DAY fonksiyonlarının döndürdükleriyle aynıdır.
iso_week tarih bölümü
ISO 8601, haftalar için bir numaralandırma sistemi olan ISO hafta-tarih sistemini içerir. Her hafta, Perşembe gününün geçtiği yılla ilişkilidir. Örneğin, 2004 yılının 1. haftası (2004W01) 29 Aralık 2003 Pazartesi'den 4 Ocak 2004 Pazar gününe kadar kapsıyordu. Avrupa ülkeleri/bölgeleri genellikle bu numaralandırma tarzını kullanır. Avrupa dışı ülkeler/bölgeler genellikle bunu kullanmaz.
Not: Bir yıldaki en yüksek hafta sayısı 52 veya 53 olabilir.
Farklı ülkelerin/bölgelerin numaralandırma sistemleri ISO standardına uymayabilir. Bu tablo altı olasılığı gösteriyor:
| Haftanın ilk günü | Yılın ilk haftası | İki kez atanan haftalar | Kullanılan/Kullanılan |
|---|---|---|---|
| Pazar | 1 Ocak, İlk Cumartesi, Yılın 1-7 günü |
Yes | Amerika Birleşik Devletleri |
| Pazartesi | 1 Ocak, İlk Pazar, Yılın 1-7 günü |
Yes | Avrupa'nın ve Birleşik Krallık'ın büyük bir kısmı |
| Pazartesi | 4 Ocak, İlk Perşembe, Yılın 4-7 günü |
Hayı | ISO 8601, Norveç ve İsveç |
| Pazartesi | 7 Ocak, İlk Pazartesi, Yılın yedi günü |
Hayı | |
| Çarşamba | 1 Ocak, İlk Salı, Yılın 1-7 günü |
Yes | |
| Cumartesi | 1 Ocak, İlk Cuma, Yılın 1-7 günü |
Yes |
tzoffset
DATEPART
TZOFFSET (TZ) değerini imzalanan dakika sayısı olarak döndürür. Bu ifade, 310 dakikalık bir zaman dilimi ofseti döndürür:
SELECT DATEPART (tzoffset, '2007-05-10 00:00:01.1234567 +05:10');
DATEPART TZOFFSET değerini aşağıdaki şekilde gösterir:
- datetimeoffset ve datetime2 için, tzoffset zaman ofsetini dakika cinsinden döndürür; datetime2 için kayma her zaman 0 dakikadır.
- Dolaylı olarak datetimeoffset veya datetime2'ye dönüştürebilen veri türleri için,
DATEPARTzaman ofsetini dakika cinsinden döndürür. İstisna: diğer tarih/saat veri türleri. - Diğer tüm tür parametreler hata ile sonuçlanır.
smalldatetime tarih argümanı
Smalldatetimetarih değeri için, DATEPART saniyeler 00 olarak döner.
Tarih argümanında olmayan bir tarih parçası için varsayılan dönerdi
Eğer tarih argümanı veri tipi belirtilen datepart içermiyorsa, DATEPART sadece bir datepart belirtildiğinde o datepart için varsayılan döner.
Örneğin, herhangi bir tarih veri tipi için varsayılan yıl-ay-gün 1900-01-01'dir. Bu ifadede datepart için tarih kısmı argümanları, tarih için zaman argümanı vardır ve döndürür 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');
Tarih değişken veya tablo sütunu olarak belirtilirse ve o değişken veya sütunun veri tipinde belirtilen datepart yoksa, DATEPART 9810 hatası döner. Bu örnekte, değişken @t'ninzaman veri tipi vardır. Örnek, zaman veri tipi için kısmen yıl tarihi geçersiz olduğu için başarısız olur:
DECLARE @t time = '12:10:30.123';
SELECT DATEPART(year, @t);
Kesirli saniyeler
Bu ifadeler kısmal DATEPART saniyeler döndürdüğünü gösterir:
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 WHERE, HAVE, GROUP BY ve ORDER BY cümlelerinde kullanılabilir.
DATEPART, SQL Server 2008 (10.0.x) ve sonrasında dize literallerini dolaylı olarak datetime2 tipi olarak kullanır. Bu, DATENAME'in tarih bir dizi olarak geçtiğinde YDM formatını desteklemediği anlamına gelir. YDM biçimini kullanmak için dizeyi açıkça bir datetime veya smalldatetime türüne atamanız gerekir.
Örnekler
Bu örnek temel yılı döndürüyor. Temel yıl, tarih hesaplamalarında yardımcı olur. Örnekte, bir sayı tarihi belirtir. SQL Server'ın 0'ı 1 Ocak 1900 olarak yorumladığını fark edin.
SELECT DATEPART(year, 0), DATEPART(month, 0), DATEPART(day, 0);
-- Returns: 1900 1 1
Bu örnek tarihin 12/20/1974gün kısmını geri getirir.
-- Uses AdventureWorks
SELECT TOP(1) DATEPART (day,'12/20/1974') FROM dbo.DimCustomer;
-- Returns: 20
Bu örnek tarihin 12/20/1974yıl kısmını geri getirir.
-- Uses AdventureWorks
SELECT TOP(1) DATEPART (year,'12/20/1974') FROM dbo.DimCustomer;
-- Returns: 1974