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:
Databricks SQL
Databricks Runtime
Retourneert expr cast naar een datum met een optionele opmaak.
Syntaxis
to_date(expr [, fmt] )
Argumenten
-
expr: Een TEKENREEKS-expressie die een datum vertegenwoordigt. - fmt: Een optionele notatie STRING-expressie.
Retouren
EEN DATUM.
Als fmt dit wordt opgegeven, moet deze voldoen aan datum/tijd-patronen.
Als fmt deze niet wordt opgegeven, is de functie een synoniem voor cast(expr AS DATE).
Als fmt ongeldig is of de toepassing niet resulteert in een goed gevormde datum, Azure Databricks een fout veroorzaakt.
Als u in plaats van een fout wilt retourneren NULL wanneer expr de indeling onjuist is, gebruikt try_cast(expr AS DATE) of, in Databricks Runtime, stelt u spark.sql.ansi.enabled in op false.
Veelvoorkomende foutoorzaken en oplossingen
to_date genereert een fout wanneer:
-
De invoertekenreeks komt niet overeen met de verwachte indeling: wanneer
fmtdeze niet is opgegeven, moet de invoer inyyyy-MM-ddofyyyy-MM-dd HH:mm:ssindeling zijn. Als uw gegevens een andere indeling gebruiken, zoalsdd/MM/yyyyofMM-dd-yyyy, geeft u het overeenkomendefmtargument op. Zie Datum/tijd-patronen voor alle ondersteunde patroonbrieven. -
De invoertekenreeks bevat ongeldige datumwaarden: bijvoorbeeld maand
13, dag32of niet-numerieke tekens waarin cijfers worden verwacht. - De notatietekenreeks maakt gebruik van niet-ondersteunde patroonbrieven: Zie Datum/tijd-patronen voor ondersteunde symbolen en opmaakregels.
Foutvoorwaarden
-
CAST_INVALID_INPUT: Verhoogd wanneer er geen is
fmtopgegeven en de invoertekenreeks kan niet worden geparseerd als een datum. -
CANNOT_PARSE_TIMESTAMP: Gegenereerd wanneer
fmtwordt opgegeven, maar de invoertekenreeks komt niet overeen met het opgegeven indelingspatroon.
Notitie
Als in Databricks Runtime spark.sql.ansi.enabledretourneert false de functie in plaats van een fout voor ongeldige datums.
Voorbeelden
-- Parsing with default format (yyyy-MM-dd)
> SELECT to_date('2009-07-30 04:17:52');
2009-07-30
-- Parsing with an explicit format
> SELECT to_date('2016-12-31', 'yyyy-MM-dd');
2016-12-31
-- Parsing a non-default date format
> SELECT to_date('31/12/2016', 'dd/MM/yyyy');
2016-12-31
-- Error: input is not a valid date string
> SELECT to_date('not-a-date');
Error: CAST_INVALID_INPUT
-- Error: input format doesn't match the default yyyy-MM-dd format
> SELECT to_date('31/12/2016');
Error: CAST_INVALID_INPUT
-- Fix: supply a fmt that matches the input format
> SELECT to_date('31/12/2016', 'dd/MM/yyyy');
2016-12-31
-- Use try_cast to return NULL instead of an error for invalid input
> SELECT try_cast('not-a-date' AS DATE);
NULL