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
Analiz Platformu Sistemi (PDW)
Microsoft Fabric'teki SQL analiz uç noktası
Microsoft Fabric'teki ambar
Microsoft Fabric'teki SQL veritabanı
SQL Server'da bir tarih tanımlar. Tarih veri türü SQL Server 2008'de (10.0.x) tanıtıldı.
Tarih açıklaması
| Property | Value |
|---|---|
| Syntax | DATE |
| Usage | DECLARE @MyDate DATECREATE TABLE Table1 (Column1 DATE) |
| Varsayılan dize değişmez değeri biçimi (alt düzey istemci için kullanılır) |
yyyy-MM-ddDaha fazla bilgi için alt düzey istemciler için geriye dönük uyumluluk bölümüne bakın. |
| Range |
0001-01-01 through 9999-12-31 (1582-10-15 Informatica için aracılığıyla 9999-12-31 )1 Ocak 1 CE (Ortak Çağ) - 31 Aralık 9999 CE (15 Ekim 1582 CE - 31 Aralık 9999 CE for Informatica) |
| Eleman aralıkları |
yyyy , bir yılı temsil eden ile arasındaki dört basamaktır 00019999 . informatica sınırları yyyy ile aralığıdır 15829999.MM , belirtilen yıldaki bir ayı temsil eden iki basamaktır 0112 .dd, belirtilen ayın gününü temsil eden aya 01bağlı olarak ile olan iki basamaktır31. |
| Karakter uzunluğu | 10 pozisyon |
| Hassasiyet, ölçek | 10, 0 |
| Depolama boyutu | 3 bayt, sabit |
| Depolama yapısı | bir 3 baytlık tamsayı depolar tarihi |
| Accuracy | Bir gün |
| Varsayılan değer | 1900-01-01Bu değer, zaman ile datetime2 veya datetimeoffset arasında örtük dönüştürme için eklenen tarih bölümü için kullanılır. |
| Calendar | Gregorian |
| Kullanıcı tanımlı kesirli ikinci duyarlık | No |
| Saat dilimi fark fark ve koruma | No |
| Gün ışığından yararlanmaya duyarlı | No |
Tarih için desteklenen dize değişmez değerleri biçimleri
Aşağıdaki listeler tarih veri türü için geçerli dize değişmez biçimlerini gösterir.
[m]m, ddve [yy]yy ay, gün ve yılı bir dizede eğik çizgi (/), kısa çizgi (-) veya nokta (.) ayırıcı olarak temsil eder.
Yalnızca dört basamaklı veya iki basamaklı yıllar desteklenir. Mümkün olduğunda dört basamaklı yıl kullanın. İki basamaklı yılların dört basamaklı yıl olarak yorumlanması için kesme yılını temsil eden ile arasında bir tamsayı 00019999 belirtmek için , iki basamaklı yıl kesme sunucusu yapılandırma seçeneğini kullanın.
Informatica için aralığı yyyy ile 15829999sınırlıdır.
Kesme yılının son iki basamağını aşan veya bu rakama eşit olan iki basamaklı yıl, kesme yılıyla aynı yüzyılda yer alır. Kesme yılının son iki basamağını aşan iki basamaklı bir yıl, kesme yılından önce gelen yüzyıldadır. Örneğin, iki basamaklı yıl kesme varsayılan 2049ise, iki basamaklı yıl 49 olarak 2049 ve iki basamaklı yıl 50 olarak 1950yorumlanır.
Geçerli dil ayarı varsayılan tarih biçimini belirler. SET LANGUAGE ve SET DATEFORMAT deyimlerini kullanarak tarih biçimini değiştirebilirsiniz.
ydm Biçim tarih için desteklenmez.
Ay-gün-yıl için dize değişmez değerleri biçimleri
SET DATEFORMAT mdy;
[m]m/dd/[yy]yy[m]m-dd-[yy]yy
Ay-yıl günü için dize değişmez değerleri biçimleri
SET DATEFORMAT myd;
[m]m/[yy]yy/dd[m]m-[yy]yy-dd[m]m.[yy]yy.dd
Gün-ay-yıl için dize değişmez değerleri biçimleri
SET DATEFORMAT dmy;
dd/[m]m/[yy]yydd-[m]m-[yy]yydd.[m]m.[yy]yy
Gün-yıl-ay için dize değişmez değerleri biçimleri
SET DATEFORMAT dym;
dd/[yy]yy/[m]mdd-[yy]yy-[m]mdd.[yy]yy.[m]m
Yıl-ay-gün için dize değişmez değerleri biçimleri
SET DATEFORMAT ymd;
[yy]yy/[m]m/dd[yy]yy-[m]m-dd[yy]yy-[m]m-dd
Alfabetik biçim listesi
[dd] mon[,] yyyydd mon[,][yy]yydd [yy]yy mon[dd] yyyy monmon [dd][,] yyyymon dd[,] [yy]mon yyyy [dd]yyyy mon [dd]yyyy [dd] mon
mon geçerli dilde verilen tam ay adını veya ay kısaltmasını temsil eder. Virgüller isteğe bağlıdır ve büyük harf kullanımı yoksayılır.
Belirsizliği önlemek için dört basamaklı yılları kullanın.
Gün eksikse, ayın ilk günü sağlanır.
ISO 8601 biçim listesi
yyyy-MM-ddyyyyMMdd
SQL standardıyla aynı. Bu biçim, uluslararası standart olarak tanımlanan tek biçimdir.
Ayrıştırılmamış biçim listesi
[yy]yyMMddyyyy[MMdd]
Tarih verileri dört, altı veya sekiz basamakla belirtilebilir. Altı basamaklı veya sekiz basamaklı bir dize her zaman olarak ymdyorumlanır. Ay ve gün her zaman iki basamak olmalıdır. Dört basamaklı bir dize yıl olarak yorumlanır.
ODBC tarih biçimi
{ d 'yyyy-MM-dd' }
ODBC API'lerine özgü.
W3C XML tarih biçimi
yyyy-MM-ddTZD
XML/SOAP kullanımı için desteklenir.
TZD saat dilimi belirleyicisi (Z veya +hh:mm-hh:mm):
hh:mmsaat dilimi uzaklığını temsil eder.hh, saat dilimi uzaklığındaki saat sayısını temsil eden ile arasında değişen014iki basamaktır.mm, saat dilimi uzaklığındaki ek dakika sayısını temsil eden ile arasında değişen059iki basamaktır.+(artı) veya-(eksi), saat dilimi uzaklığının zorunlu işaretidir. Bu işaret, yerel saati elde etmek için saat dilimi uzaklığının Eşgüdümlü Evrensel Saatler (UTC) saatinden eklendiğini veya çıkarıldığını gösterir. Geçerli saat dilimi uzaklığı aralığı ile-14:00+14:00arasındadır.
ANSI ve ISO 8601 uyumluluğu
tarih , Gregoryen takvimin ANSI SQL standart tanımıyla uyumludur:
Tarih saat veri türleri Gregoryen biçimindeki tarihlerin 0001-01-01 CE ile 9999-12-31 CE tarih aralığında depolanmasına izin verir.
Alt düzey istemciler için kullanılan varsayılan dize değişmez değeri biçimi, olarak yyyy-MM-ddtanımlanan SQL standart formuyla uyumludur. Bu biçim, için ISO 8601 tanımıyla DATEaynıdır.
Note
Informatica için aralık (15 Ekim 1582 CE) ile 1582-10-15 (31 Aralık 9999 CE) sınırlıdır 9999-12-31 .
Alt düzey istemciler için geriye dönük uyumluluk
Bazı alt düzey istemciler saat, tarih, datetime2 ve datetimeoffset veri türlerini desteklemez . Aşağıdaki tabloda, SQL Server'ın üst düzey bir örneği ile alt düzey istemciler arasındaki tür eşlemesi gösterilmektedir.
| SQL Server veri türü | Alt düzey istemciye geçirilen varsayılan dize değişmez değeri biçimi | Alt düzey ODBC | Alt düzey OLEDB | Alt düzey JDBC | Alt düzey SQLCLIENT |
|---|---|---|---|---|---|
| time | hh:mm:ss[.nnnnnnn] |
SQL_WVARCHAR veya SQL_VARCHAR |
DBTYPE_WSTR veya DBTYPE_STR |
Java.sql.String |
String veya SqString |
| date | yyyy-MM-dd |
SQL_WVARCHAR veya SQL_VARCHAR |
DBTYPE_WSTR veya DBTYPE_STR |
Java.sql.String |
String veya SqString |
| datetime2 | yyyy-MM-dd HH:mm:ss[.nnnnnnn] |
SQL_WVARCHAR veya SQL_VARCHAR |
DBTYPE_WSTR veya DBTYPE_STR |
Java.sql.String |
String veya SqString |
| datetimeoffset | yyyy-MM-dd HH:mm:ss[.nnnnnnn] [+ or -]hh:mm |
SQL_WVARCHAR veya SQL_VARCHAR |
DBTYPE_WSTR veya DBTYPE_STR |
Java.sql.String |
String veya SqString |
Tarih ve saat verilerini dönüştürme
Tarih ve saat veri türlerine dönüştürdüğünüzde SQL Server, tarih veya saat olarak tanımadığı tüm değerleri reddeder.
CAST ve CONVERT işlevlerini tarih ve saat verileriyle kullanma hakkında bilgi için bkz. CAST ve CONVERT.
Tarihi diğer tarih ve saat türlerine dönüştürme
Bu bölümde, bir tarih veri türünü diğer tarih ve saat veri türlerine dönüştürdüğünüzde nelerin oluştuğu açıklanmaktadır.
Dönüştürme zamanı (n) olduğunda, dönüştürme başarısız olur ve hata iletisi 206 oluşturulur:
İşlenen türü çakışması: tarih saatle uyumsuz.
Dönüştürme datetime ise, tarih bileşeni kopyalanır. Aşağıdaki kod, bir tarih değerini tarih saat değerine dönüştürmenin sonuçlarını gösterir.
DECLARE @date AS DATE = '12-10-25';
DECLARE @datetime AS DATETIME = @date;
SELECT @date AS '@date',
@datetime AS '@datetime';
Sonuç kümesi aşağıdadır.
@date @datetime
---------- -----------------------
2025-12-10 2025-12-10 00:00:00.000
Dönüştürme smalldatetime olduğunda, tarih değeri smalldatetime aralığında olur, tarih bileşeni kopyalanır ve saat bileşeni olarak 00:00:00.000ayarlanır.
Tarih değeri bir smalldatetime değeri aralığının dışında olduğunda, hata iletisi 242 oluşturulur ve smalldatetime değeri olarak NULLayarlanır:
Tarih veri türünün smalldatetime veri türlerine dönüştürülmesi, aralık dışı bir değere neden oldu.
Aşağıdaki kod, bir tarih değerini smalldatetime değerine dönüştürmenin sonuçlarını gösterir.
DECLARE @date AS DATE = '1912-10-25';
DECLARE @smalldatetime AS SMALLDATETIME = @date;
SELECT @date AS '@date',
@smalldatetime AS '@smalldatetime';
Sonuç kümesi aşağıdadır.
@date @smalldatetime
---------- -------------------
1912-10-25 1912-10-25 00:00:00
datetimeoffset(n)'e dönüştürme için tarih kopyalanır ve saat olarak 00:00.0000000 +00:00ayarlanır. Aşağıdaki kod, bir tarih değerini datetimeoffset(3) değerine dönüştürmenin sonuçlarını gösterir.
DECLARE @date AS DATE = '1912-10-25';
DECLARE @datetimeoffset AS DATETIMEOFFSET (3) = @date;
SELECT @date AS '@date',
@datetimeoffset AS '@datetimeoffset';
Sonuç kümesi aşağıdadır.
@date @datetimeoffset
---------- ------------------------------
1912-10-25 1912-10-25 00:00:00.000 +00:00
Dönüştürme datetime2(n) olduğunda, tarih bileşeni kopyalanır ve saat bileşeni olarak 00:00.000000ayarlanır. Aşağıdaki kod, tarih değerinidatetime2(3) değerine dönüştürmenin sonuçlarını gösterir.
DECLARE @date AS DATE = '1912-10-25';
DECLARE @datetime2 AS DATETIME2 (3) = @date;
SELECT @date AS '@date',
@datetime2 AS '@datetime2(3)';
Sonuç kümesi aşağıdadır.
@date @datetime2(3)
---------- -----------------------
1912-10-25 1912-10-25 00:00:00.000
Dize değişmez değerlerini tarihe dönüştürme
Dizelerin tüm bölümleri geçerli biçimlerdeyse, dize değişmez değerlerinden tarih ve saat türlerine dönüştürmelere izin verilir. Aksi takdirde bir çalışma zamanı hatası oluşur. Tarih ve saat türlerinden dize değişmez değerlerine kadar bir stil belirtmeyen örtük dönüştürmeler veya açık dönüştürmeler, geçerli oturumun varsayılan biçimindedir. Aşağıdaki tabloda, bir dize değişmez değerini tarih veri türüne dönüştürme kuralları gösterilmektedir.
| Giriş dizesi değişmez değeri | date |
|---|---|
| ODBC TARIHI | ODBC dize değişmez değerleri datetime veri türüne eşlenir. ODBC DATETIME değişmez değerlerinden bir tarih türüne yapılan herhangi bir atama işlemi , datetime ile dönüştürme kurallarının tanımladığınız tür arasında örtük bir dönüştürmeye neden olur. |
| ODBC ZAMANI | Önceki ODBC TARİh kuralına bakın. |
| ODBC TARIH SAATI | Önceki ODBC TARİh kuralına bakın. |
| Sadece DATE | Trivial |
| SADECE ZAMAN | Varsayılan değerler sağlanır. |
| Sadece SAAT DILİMİ | Varsayılan değerler sağlanır. |
| TARİh + SAAT | Giriş dizesinin DATE bölümü kullanılır. |
| TARİh + SAAT DILIMI | İzin verilmiyor. |
| SAAT + SAAT DILIMI | Varsayılan değerler sağlanır. |
| TARİh + SAAT + SAAT DILIMI | Yerel DATETIME öğesinin DATE bölümü kullanılır. |
Examples
Aşağıdaki örnek, bir dizeyi her tarih ve saat veri türüne dönüştürmenin sonuçlarını karşılaştırır.
SELECT CAST ('2022-05-08 12:35:29.1234567 +12:15' AS TIME (7)) AS 'time',
CAST ('2022-05-08 12:35:29.1234567 +12:15' AS DATE) AS 'date',
CAST ('2022-05-08 12:35:29.123' AS SMALLDATETIME) AS 'smalldatetime',
CAST ('2022-05-08 12:35:29.123' AS DATETIME) AS 'datetime',
CAST ('2022-05-08 12:35:29.1234567 +12:15' AS DATETIME2 (7)) AS 'datetime2',
CAST ('2022-05-08 12:35:29.1234567 +12:15' AS DATETIMEOFFSET (7)) AS 'datetimeoffset';
Sonuç kümesi aşağıdadır.
| Veri türü | Output |
|---|---|
| time | 12:35:29.1234567 |
| date | 2022-05-08 |
| smalldatetime | 2022-05-08 12:35:00 |
| datetime | 2022-05-08 12:35:29.123 |
| datetime2 | 2022-05-08 12:35:29.1234567 |
| datetimeoffset | 2022-05-08 12:35:29.1234567 +12:15 |