Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Database in Microsoft Fabric
Geeft 1 terug als de expressie een geldige datetimewaarde heeft; anders 0.
ISDATE geeft 0 als de uitdrukking een datetime2-waarde heeft.
Zie datum- en tijdgegevenstypen en -functies (Transact-SQL)voor een overzicht van alle Transact-SQL datum- en tijdgegevenstypen en -functies. Let op dat het bereik voor datum-tijdgegevens ligt van 1753-01-01 tot en met 9999-12-31, terwijl het bereik voor datumgegevens 0001-01-01 tot en met 9999-12-31 ligt.
Transact-SQL syntaxis-conventies
Syntaxis
ISDATE ( expression )
Arguments
expressie
Is een tekenstring of expressie die kan worden omgezet in een tekenstring. De uitdrukking mag minder dan 4.000 tekens zijn. Datum- en tijdgegevenstypen, behalve datetime en smalldatetime, zijn niet toegestaan als argument voor ISDATE.
Retourtype
int
Opmerkingen
ISDATE is deterministisch alleen als je het gebruikt met de CONVERT-functie , als de CONVERT-stijlparameter is opgegeven en stijl niet gelijk is aan 0, 100, 9 of 109.
De retourwaarde van ISDATE hangt af van de instellingen die zijn ingesteld door SET DATEFORMAT, SET LANGUAGE en Configure the default language Server Configuration Option.
ISDATE-expressieformaten
Voor voorbeelden van geldige formaten waarvoor ISDATE 1 teruggeeft, zie de sectie "Supported String Literal Formats for datetime" in de datetime - en smalldatetime-onderwerpen . Voor aanvullende voorbeelden, zie ook de kolom Input/Output in de sectie "Arguments" van CAST and CONVERT.
De volgende tabel vat invoerexpressieformaten samen die niet geldig zijn en die 0 of een fout teruggeven.
| ISDATE-expressie | ISDATE rendementswaarde |
|---|---|
| NUL | 0 |
| Waarden van datatypes die in Data Types worden vermeld in elke datatypecategorie behalve tekenreeksen, Unicode-tekenreeksen of datum en tijd. | 0 |
| Waarden van tekst-, ntext- of afbeeldingsdatatypes . | 0 |
| Elke waarde die een secondenprecisieschaal groter dan 3 heeft, (.0000 tot .0000000...n). ISDATE geeft 0 terug als de expressie een datetime2-waarde heeft, maar geeft 1 terug als de expressie een geldige datetime-waarde is. | 0 |
| Elke waarde die een geldige datum met een ongeldige waarde mengt, bijvoorbeeld 1995-10-1a. | 0 |
Voorbeelden
Eén. ISDATE gebruiken om te testen op een geldige datetime-expressie
Het volgende voorbeeld laat zien hoe je ISDATE kunt testen of een tekenreeks een geldige datumtijd is.
IF ISDATE('2009-05-12 10:19:41.177') = 1
PRINT 'VALID'
ELSE
PRINT 'INVALID';
B. Het tonen van de effecten van de instellingen SET DATEFORMAT en SET LANGUAGE op retourwaarden
De volgende statements tonen de waarden die worden teruggegeven als gevolg van de instellingen van SET DATEFORMAT en 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;
Voorbeelden: Azure Synapse Analytics and Analytics Platform System (PDW)
C. ISDATE gebruiken om te testen op een geldige datetime-expressie
Het volgende voorbeeld laat zien hoe je ISDATE kunt testen of een tekenreeks een geldige datumtijd is.
IF ISDATE('2009-05-12 10:19:41.177') = 1
SELECT 'VALID';
ELSE
SELECT 'INVALID';