Delen via


Tijd-, datum- en intervalfuncties

De volgende tabel bevat tijd- en datumfuncties die zijn opgenomen in de ODBC scalaire functieset. Een toepassing kan bepalen welke tijd- en datumfuncties worden ondersteund door een stuurprogramma door SQLGetInfo- aan te roepen met een informatietype van SQL_TIMEDATE_FUNCTIONS.

Argumenten die worden aangeduid als timestamp_exp kunnen de naam zijn van een kolom, het resultaat van een andere scalaire functie of een ODBC-time-escape-, ODBC-date-escape-of ODBC-timestamp-escape-, waarbij het onderliggende gegevenstype kan worden weergegeven als SQL_CHAR, SQL_VARCHAR, SQL_TYPE_TIME, SQL_TYPE_DATE of SQL_TYPE_TIMESTAMP.

Argumenten die worden aangeduid als date_exp kunnen de naam zijn van een kolom, het resultaat van een andere scalaire functie of een ODBC-datum-escape- of ODBC-timestamp-escape-, waarbij het onderliggende gegevenstype kan worden weergegeven als SQL_CHAR, SQL_VARCHAR, SQL_TYPE_DATE of SQL_TYPE_TIMESTAMP.

Argumenten die worden aangeduid als time_exp kunnen de naam zijn van een kolom, het resultaat van een andere scalaire functie of een ODBC-time-escape- of ODBC-timestamp-escape-, waarbij het onderliggende gegevenstype kan worden weergegeven als SQL_CHAR, SQL_VARCHAR, SQL_TYPE_TIME of SQL_TYPE_TIMESTAMP.

De functies CURRENT_DATE, CURRENT_TIME en CURRENT_TIMESTAMP scalaire tijddatum zijn toegevoegd in ODBC 3.0 om te worden afgestemd op SQL-92.

Functie Beschrijving
CURRENT_DATE( ) (ODBC 3.0) Retourneert de huidige datum.
CURRENT_TIME[(tijdsprecisie)] (ODBC 3.0) Retourneert de huidige lokale tijd. Het argument tijdsprecisie bepaalt de secondenprecisie van de geretourneerde waarde.
CURRENT_TIMESTAMP
[(timestamp-precision)] (ODBC 3.0)
Retourneert de huidige lokale datum en lokale tijd als een tijdstempelwaarde. Het argument tijdstempelprecisie bepaalt de secondenprecisie van het geretourneerde tijdstempel.
CURDATE( ) (ODBC 1.0) Retourneert de huidige datum.
CURTIME( ) (ODBC 1.0) Retourneert de huidige lokale tijd.
DAYNAME(date_exp) (ODBC 2.0) Retourneert een tekenreeks met de gegevensbronspecifieke naam van de dag (bijvoorbeeld zondag tot en met zaterdag of zon. tot en met za. voor een gegevensbron die Engels gebruikt of Sonntag via Samstag voor een gegevensbron die Duits gebruikt) voor het daggedeelte van date_exp.
DAYOFMONTH(date_exp) (ODBC 1.0) Retourneert de dag van de maand op basis van het maandveld in date_exp als een geheel getal in het bereik van 1-31.
DAYOFWEEK(date_exp) (ODBC 1.0) Retourneert de dag van de week op basis van het weekveld in date_exp als een geheel getal in het bereik van 1-7, waarbij 1 zondag vertegenwoordigt.
DAYOFYEAR(date_exp) (ODBC 1.0) Retourneert de dag van het jaar op basis van het jaarveld in date_exp als een geheel getal in het bereik van 1-366.
EXTRACT(extract-field FROMextract-source) (ODBC 3.0) Retourneert het extract-field gedeelte van de extract-source. Het argument extract-source is een datum/tijd- of intervalexpressie. Het argument extract-field kan een van de volgende trefwoorden zijn:

JAAR MAAND DAG UUR MINUUT SECONDE

De precisie van de geretourneerde waarde is door de implementatie gedefinieerd. De schaal is 0, tenzij SECOND is opgegeven. In dat geval is de schaal niet kleiner dan de precisie van de fractionele seconden van het veld extract-source.
HOUR(time_exp) (ODBC 1.0) Retourneert het uur op basis van het uurveld in time_exp als een geheel getal in het bereik van 0-23.
MINUTE(time_exp) (ODBC 1.0) Retourneert de minuut op basis van het minuutveld in time_exp als een geheel getal in het bereik van 0-59.
MONTH(date_exp) (ODBC 1.0) Retourneert de maand op basis van het maandveld in date_exp als een geheel getal in het bereik van 1-12.
MONTHNAME(date_exp) (ODBC 2.0) Hiermee wordt een tekenreeks geretourneerd die de gegevensbronspecifieke naam van de maand bevat (bijvoorbeeld januari tot en met december of jan. tot en met dec. voor een gegevensbron die Engels gebruikt of Januar door Dezember voor een gegevensbron die Duits gebruikt) voor het maandgedeelte van date_exp.
NOW( ) (ODBC 1.0) Retourneert de huidige datum en tijd als een tijdstempelwaarde.
QUARTER(date_exp) (ODBC 1.0) Retourneert het kwartaal in date_exp als een geheel getal in het bereik van 1-4, waarbij 1 1 januari tot en met 31 maart vertegenwoordigt.
SECOND(time_exp) (ODBC 1.0) Retourneert de tweede op basis van het tweede veld in time_exp als een geheel getal in het bereik van 0-59.
TIMESTAMPADD(interval, integer_exp, timestamp_exp) (ODBC 2.0) Retourneert de tijdstempel die wordt berekend door integer_exp intervallen van het type interval toe te voegen aan timestamp_exp. Geldige waarden van interval zijn de volgende trefwoorden:

SQL_TSI_FRAC_SECOND

SQL_TSI_SECOND

SQL_TSI_MINUTE

SQL_TSI_HOUR

SQL_TSI_DAY

SQL_TSI_WEEK

SQL_TSI_MONTH

SQL_TSI_QUARTER

SQL_TSI_YEAR

waarbij fractionele seconden worden uitgedrukt in miljarden van een seconde. De volgende SQL-instructie retourneert bijvoorbeeld de naam van elke werknemer en de verjaardagsdatum van één jaar:

SELECT NAME, {fn TIMESTAMPADD(SQL_TSI_YEAR, 1, HIRE_DATE)} FROM EMPLOYEES

Als timestamp_exp een tijdswaarde is en interval dagen, weken, maanden, kwartalen of jaren opgeeft, wordt het datumgedeelte van timestamp_exp ingesteld op de huidige datum voordat de resulterende tijdstempel wordt berekend.

Als timestamp_exp een datumwaarde is en interval fractionele seconden, seconden, minuten of uren opgeeft, wordt het tijdgedeelte van timestamp_exp ingesteld op 0 voordat de resulterende tijdstempel wordt berekend.

Een toepassing bepaalt welke intervallen een gegevensbron ondersteunt door SQLGetInfo- aan te roepen met de optie SQL_TIMEDATE_ADD_INTERVALS.
TIMESTAMPDIFF(interval, timestamp_exp1, timestamp_exp2) (ODBC 2.0) Retourneert het gehele aantal intervallen van het type interval waarmee timestamp_exp2 groter is dan timestamp_exp1. Geldige waarden van interval zijn de volgende trefwoorden:

SQL_TSI_FRAC_SECOND

SQL_TSI_SECOND

SQL_TSI_MINUTE

SQL_TSI_HOUR

SQL_TSI_DAY

SQL_TSI_WEEK

SQL_TSI_MONTH

SQL_TSI_QUARTER

SQL_TSI_YEAR

waarbij fractionele seconden worden uitgedrukt in miljarden van een seconde. De volgende SQL-instructie retourneert bijvoorbeeld de naam van elke werknemer en het aantal jaren dat ze zijn gebruikt:

SELECT NAME, {fn TIMESTAMPDIFF(SQL_TSI_YEAR, {fn CURDATE()}, HIRE_DATE)} FROM EMPLOYEES

Als een tijdstempelexpressie een tijdswaarde is en interval dagen, weken, maanden, kwartalen of jaren opgeeft, wordt het datumgedeelte van die tijdstempel ingesteld op de huidige datum voordat het verschil tussen de tijdstempels wordt berekend.

Als een tijdstempelexpressie een datumwaarde is en interval fractionele seconden, seconden, minuten of uren opgeeft, wordt het tijdgedeelte van die tijdstempel ingesteld op 0 voordat het verschil tussen de tijdstempels wordt berekend.

Een toepassing bepaalt welke intervallen een gegevensbron ondersteunt door SQLGetInfo- aan te roepen met de optie SQL_TIMEDATE_DIFF_INTERVALS.
WEEK(date_exp) (ODBC 1.0) Retourneert de week van het jaar op basis van het weekveld in date_exp als een geheel getal in het bereik van 1-53.
YEAR(date_exp) (ODBC 1.0) Retourneert het jaar op basis van het jaarveld in date_exp als een geheel getal. Het bereik is afhankelijk van de gegevensbron.