Date: Difference between revisions
No edit summary |
Wikiservice (talk | contribs) (Refresh MemCP documentation: accuracy, operational guidance, performance profile and maintained API reference) |
||
| Line 1: | Line 1: | ||
<!-- Copyright (C) 2026 Carl-Philip Haensch --> | |||
<!-- SPDX-License-Identifier: GPL-3.0-or-later --> | |||
<span id="date"></span> | |||
= Date = | = Date = | ||
<!-- Generated from MemCP c42e19eba on 2026-08-27; do not edit manually. --> | |||
<div class="mw-message-box mw-message-box-notice">Generated from MemCP commit <code>c42e19eba</code> on 27 August 2026. See [[Full SCM API documentation]].</div> | |||
The '''Date''' module handles SQL temporal values and Scheme date computations. It includes: | |||
* current date and time values; | |||
* parsing and MySQL-compatible formatting; | |||
* field extraction and truncation; | |||
* interval addition and subtraction; | |||
* differences between dates or timestamps; | |||
* compiler-aware conversion to the declared SQL temporal output type. | |||
Timezone conversion and UTC/session-zone helpers are documented separately under [[Timezone]]. | |||
== sql_temporal_output == | == sql_temporal_output == | ||
| Line 26: | Line 34: | ||
=== Returns === | === Returns === | ||
<code>any</code> | * '''value''' (<code>any</code>) | ||
== now == | == now == | ||
| Line 42: | Line 50: | ||
=== Returns === | === Returns === | ||
<code>date</code> | * '''value''' (<code>date</code>) | ||
== nanotime == | == nanotime == | ||
| Line 58: | Line 66: | ||
=== Returns === | === Returns === | ||
<code>int</code> | * '''value''' (<code>int</code>) | ||
== current_date == | == current_date == | ||
| Line 74: | Line 82: | ||
=== Returns === | === Returns === | ||
<code>date</code> | * '''value''' (<code>date</code>) | ||
== parse_date == | == parse_date == | ||
| Line 90: | Line 98: | ||
=== Returns === | === Returns === | ||
<code>date</code> | * '''value''' (<code>date</code>) | ||
== format_date == | == format_date == | ||
| Line 107: | Line 115: | ||
=== Returns === | === Returns === | ||
<code>string</code> | * '''value''' (<code>string</code>) | ||
== extract_date == | == extract_date == | ||
| Line 124: | Line 132: | ||
=== Returns === | === Returns === | ||
<code>int</code> | * '''value''' (<code>int</code>) | ||
== date_add == | == date_add == | ||
| Line 142: | Line 150: | ||
=== Returns === | === Returns === | ||
<code>date</code> | * '''value''' (<code>date</code>) | ||
== date_sub == | == date_sub == | ||
| Line 160: | Line 168: | ||
=== Returns === | === Returns === | ||
<code>date</code> | * '''value''' (<code>date</code>) | ||
== date_trunc_day == | == date_trunc_day == | ||
| Line 176: | Line 184: | ||
=== Returns === | === Returns === | ||
<code>date</code> | * '''value''' (<code>date</code>) | ||
== timestampdiff == | == timestampdiff == | ||
| Line 194: | Line 202: | ||
=== Returns === | === Returns === | ||
<code>int</code> | * '''value''' (<code>int</code>) | ||
== datediff == | == datediff == | ||
| Line 211: | Line 219: | ||
=== Returns === | === Returns === | ||
<code>int</code> | * '''value''' (<code>int</code>) | ||
== str_to_date == | == str_to_date == | ||
| Line 228: | Line 236: | ||
=== Returns === | === Returns === | ||
<code>date</code> | * '''value''' (<code>date</code>) | ||
Latest revision as of 11:59, 28 August 2026
Date
The Date module handles SQL temporal values and Scheme date computations. It includes:
- current date and time values;
- parsing and MySQL-compatible formatting;
- field extraction and truncation;
- interval addition and subtraction;
- differences between dates or timestamps;
- compiler-aware conversion to the declared SQL temporal output type.
Timezone conversion and UTC/session-zone helpers are documented separately under Timezone.
sql_temporal_output
formats a temporal SQL result according to its compiler-tracked declared type
Allowed number of parameters: 2–2
Parameters
- value (
any): type-flexible temporal value - sql_type (
string): declared SQL temporal type
Returns
- value (
any)
now
returns the current date/time
Allowed number of parameters: 0–0
Parameters
This function has no parameters.
Returns
- value (
date)
nanotime
returns a monotonic nanosecond timestamp for benchmarking (not wall-clock)
Allowed number of parameters: 0–0
Parameters
This function has no parameters.
Returns
- value (
int)
current_date
returns the current date (midnight in session timezone)
Allowed number of parameters: 0–0
Parameters
This function has no parameters.
Returns
- value (
date)
parse_date
parses a date from a string
Allowed number of parameters: 1–1
Parameters
- value (
string): values to parse
Returns
- value (
date)
format_date
formats a unix timestamp, date, or datetime string into a date string
Allowed number of parameters: 2–2
Parameters
- timestamp (
any): unix timestamp, date, or datetime string - format (
string): MySQL-style format string (e.g. %Y-%m-%d %H:%i:%s)
Returns
- value (
string)
extract_date
extracts a date field (YEAR, MONTH, DAY, HOUR, MINUTE, SECOND, QUARTER, WEEK, DAYOFWEEK, WEEKDAY) from a date value
Allowed number of parameters: 2–2
Parameters
- value (
any): date value - field (
string): field name: YEAR, MONTH, DAY, HOUR, MINUTE, SECOND, QUARTER, WEEK, DAYOFWEEK, WEEKDAY
Returns
- value (
int)
date_add
adds an interval to a date value
Allowed number of parameters: 3–3
Parameters
- value (
any): date value - amount (
int): interval amount - unit (
string): interval unit: DAY, WEEK, MONTH, YEAR, HOUR, MINUTE, SECOND
Returns
- value (
date)
date_sub
subtracts an interval from a date value
Allowed number of parameters: 3–3
Parameters
- value (
any): date value - amount (
int): interval amount - unit (
string): interval unit: DAY, WEEK, MONTH, YEAR, HOUR, MINUTE, SECOND
Returns
- value (
date)
date_trunc_day
truncates a datetime to date (midnight UTC)
Allowed number of parameters: 1–1
Parameters
- value (
any): date/datetime value
Returns
- value (
date)
timestampdiff
returns the difference between two datetimes in the given unit
Allowed number of parameters: 3–3
Parameters
- unit (
string): SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, YEAR - dt1 (
any): first datetime - dt2 (
any): second datetime
Returns
- value (
int)
datediff
returns number of days between two dates (date1 - date2)
Allowed number of parameters: 2–2
Parameters
- date1 (
any): first date - date2 (
any): second date
Returns
- value (
int)
str_to_date
parses a string with MySQL format specifiers to a date
Allowed number of parameters: 2–2
Parameters
- value (
string): date string - format (
string): MySQL format string (e.g. %Y-%m-%d)
Returns
- value (
date)