Aracılığıyla paylaş


ISDATE (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalitik Platform Sistemi (PDW)Microsoft Fabric'te SQL veritabanı

İfade geçerli bir tarih ve saat değeriyse 1 döndürür; aksi takdirde, 0.

ISDATE, ifadesidatetime2 değeri ise 0 döndürür.

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). Tarih verisi aralığı 1753-01-01 ile 9999-12-31 arasındadır, tarih verileri için ise 0001-01-01 ile 9999-12-31 arasındadır.

Transact-SQL söz dizimi kuralları

Sözdizimi

ISDATE ( expression )

Arguments

expression
Karakter dizisi veya ifadesi olarak dönüştürülebilir bir karakter dizisi veya ifadesidir . İfade 4.000 karakterden az olmalı. Datetime ve küçük tarih saati hariç tarih ve zaman veri türleri ISDATE argümanı olarak kabul edilmez.

Dönüş Türü

int

Açıklamalar

ISDATE yalnızca CONVERT fonksiyonuyla birlikte kullanıldığında, CONVERT stil parametresi belirtilmişse ve stil 0, 100, 9 veya 109 eşit değilse deterministiktir.

ISDATE'in dönüş değeri, SET DATEFORMAT, SET LANGUAGE ve Configure the default language Server Configuration Option tarafından belirlenen ayarlara bağlıdır.

ISDATE ifade Formatları

ISDATE'in 1 döndüreceği geçerli formatlara örnekler için, datetime ve smalldatetime konularındaki "Desteklenen Dize Literal Formatları tarih zamanı" bölümüne bakınız. Ek örnekler için ayrıca CAST ve CONVERT kitaplarının "Argümanlar" bölümündeki Giriş/Çıkış sütununa bakınız.

Aşağıdaki tablo, geçerli olmayan ve 0 veya hata döndüren giriş ifade formatlarını özetler.

ISDATE ifadesi ISDATE dönüş değeri
null 0
Veri Tipleri'nde listelenen veri tiplerinin değerleri, karakter dizileri, Unicode karakter dizileri veya tarih ve saat dışındaki herhangi bir veri tipi kategorisinde. 0
Metin, ntext veya resim veri türlerinin değerleri. 0
Saniye hassasiyeti 3'ten büyük olan herhangi bir değer (.0000 ile .0000000...n). ISDATE, ifadedatetime2 değeri ise 0 döndürür, ancak ifade geçerli bir datetime değeri ise 1 döndürür. 0
Geçerli bir tarihi geçersiz bir değerle karıştıran herhangi bir değer, örneğin 1995-10-1a. 0

Örnekler

A. Geçerli bir tarih ifadesi için ISDATE kullanımı

Aşağıdaki örnek, bir karakter dizisinin geçerli bir datetime olup olmadığını nasıl test edeceğinizi gösterirISDATE.

IF ISDATE('2009-05-12 10:19:41.177') = 1  
    PRINT 'VALID'  
ELSE  
    PRINT 'INVALID';  

B. SET DATEFORMAT ve SET Language ayarlarının dönüş değerleri üzerindeki etkilerini göstermek

Aşağıdaki ifadeler, ve ayarlarının sonucunda SET DATEFORMAT döndürülen değerleri gösterir SET LANGUAGE.

/* Use these sessions settings. */  
SET LANGUAGE us_english;  
SET DATEFORMAT mdy;  
/* Expression in mdy dateformat */  
SELECT ISDATE('04/15/2008'); --Returns 1.  
/* Expression in mdy dateformat */  
SELECT ISDATE('04-15-2008'); --Returns 1.   
/* Expression in mdy dateformat */  
SELECT ISDATE('04.15.2008'); --Returns 1.   
/* Expression in myd  dateformat */  
SELECT ISDATE('04/2008/15'); --Returns 1.  
  
SET DATEFORMAT mdy;  
SELECT ISDATE('15/04/2008'); --Returns 0.  
SET DATEFORMAT mdy;  
SELECT ISDATE('15/2008/04'); --Returns 0.  
SET DATEFORMAT mdy;  
SELECT ISDATE('2008/15/04'); --Returns 0.  
SET DATEFORMAT mdy;  
SELECT ISDATE('2008/04/15'); --Returns 1.  
  
SET DATEFORMAT dmy;  
SELECT ISDATE('15/04/2008'); --Returns 1.  
SET DATEFORMAT dym;  
SELECT ISDATE('15/2008/04'); --Returns 1.  
SET DATEFORMAT ydm;  
SELECT ISDATE('2008/15/04'); --Returns 1.  
SET DATEFORMAT ymd;  
SELECT ISDATE('2008/04/15'); --Returns 1.  
  
SET LANGUAGE English;  
SELECT ISDATE('15/04/2008'); --Returns 0.  
SET LANGUAGE Hungarian;  
SELECT ISDATE('15/2008/04'); --Returns 0.  
SET LANGUAGE Swedish;  
SELECT ISDATE('2008/15/04'); --Returns 0.  
SET LANGUAGE Italian;  
SELECT ISDATE('2008/04/15'); --Returns 1.  
  
/* Return to these sessions settings. */  
SET LANGUAGE us_english;  
SET DATEFORMAT mdy;  

Örnekler: Azure Synapse Analytics ve Analytics Platform Sistemi (PDW)

C. Geçerli bir tarih ifadesi için ISDATE kullanımı

Aşağıdaki örnek, bir karakter dizisinin geçerli bir datetime olup olmadığını nasıl test edeceğinizi gösterirISDATE.

IF ISDATE('2009-05-12 10:19:41.177') = 1  
    SELECT 'VALID';  
ELSE  
    SELECT 'INVALID';  

Ayrıca Bkz.

CAST ve CONVERT (Transact-SQL)