# Datum-/Zeitfunktionen
# timezone
Gibt die Zeitzone der aktuellen Sitzung zurück, d.h. den Wert der Einstellung session_timezone. Wenn die Funktion im Kontext einer verteilten Tabelle ausgeführt wird, generiert sie eine normale Spalte mit für jeden Shard relevanten Werten. Andernfalls erzeugt sie einen konstanten Wert.
timeZone()
Alias
timezone.
Rückgabewert
- Zeitzone.
- Typ: String.
Beispiel
SELECT timezone()
┌─timezone()─────┐
│ America/Denver │
└────────────────┘
# makeDate
Erstellt ein Datum aus den Argumenten Jahr, Monat und Tag.
makeDate(year, month, day);
Alias
MAKEDATE(year, month, day);
Argumente
year— Jahr. Integer, Float oder Decimal.month— Monat. Integer, Float oder Decimal.day— Tag. Integer, Float oder Decimal.
Rückgabewert
- Ein aus den Argumenten erstelltes Datum.
- Typ: Date.
Beispiel
SELECT makeDate(2023, 2, 28) AS Date;
┌───────date─┐
│ 2023-02-28 │
└────────────┘
# makeDateTime
Erstellt eine DateTime aus den Argumenten Jahr, Monat, Tag, Stunde, Minute und Sekunde.
makeDateTime(year, month, day, hour, minute, second[, timezone])
Argumente
year— Jahr. Integer, Float oder Decimal.month— Monat. Integer, Float oder Decimal.day— Tag. Integer, Float oder Decimal.hour— Stunde. Integer, Float oder Decimal.minute— Minute. Integer, Float oder Decimal.second— Sekunde. Integer, Float oder Decimal.timezone— Zeitzone für den zurückgegebenen Wert (optional).
Rückgabewert
- Ein Datum mit Uhrzeit, das aus den Argumenten erstellt wurde.
- Typ: DateTime.
Beispiel
SELECT makeDateTime(2023, 2, 28, 17, 12, 33) AS DateTime;
┌────────────DateTime─┐
│ 2023-02-28 17:12:33 │
└─────────────────────┘
# toTimeZone
Konvertiert ein Datum oder ein Datum mit Uhrzeit in die angegebene Zeitzone. Ändert nicht den internen Wert (Anzahl der Unix-Sekunden) der Daten, sondern nur das Zeitzone-Attribut des Werts und die Zeichenkettenrepräsentation des Werts.
toTimezone(value, timezone)
Alias
toTimezone.
Argumente
value— Zeit oder Datum und Uhrzeit. DateTime64.timezone— Zeitzone für den zurückgegebenen Wert. String. Dieses Argument ist konstant, datoTimezonedie Zeitzone einer Spalte ändert (Zeitzone ist ein Attribut vonDateTime*-Typen).
Rückgabewert
- Datum und Uhrzeit.
- Typ: DateTime.
Beispiel
SELECT toDateTime('2019-01-01 00:00:00', 'UTC') AS time_utc,
toTypeName(time_utc) AS type_utc, toInt32(time_utc) AS int32utc,
toTimeZone(time_utc, 'Asia/Yekaterinburg') AS time_yekat,
toTypeName(time_yekat) AS type_yekat, toInt32(time_yekat) AS int32yekat,
toTimeZone(time_utc, 'US/Samoa') AS time_samoa,
toTypeName(time_samoa) AS type_samoa,
toInt32(time_samoa) AS int32samoa FORMAT Vertical;
Row 1:
──────
time_utc: 2019-01-01 00:00:00
type_utc: DateTime('UTC')
int32utc: 1546300800
time_yekat: 2019-01-01 05:00:00
type_yekat: DateTime('Asia/Yekaterinburg')
int32yekat: 1546300800
time_samoa: 2018-12-31 13:00:00
type_samoa: DateTime('US/Samoa')
int32samoa: 1546300800
# toUnixTimestamp
Konvertiert einen String, ein Datum oder ein Datum mit Uhrzeit in den Unix-Timestamp in der Darstellung UInt32. Wenn die Funktion mit einem String aufgerufen wird, akzeptiert sie ein optionales Zeitzone-Argument.
toUnixTimestamp(date);toUnixTimestamp(str, [timezone])
Rückgabewert
- Gibt den Unix-Timestamp zurück.
- Typ:
UInt32.
Beispiel
SELECT '2017-11-05 08:07:47' AS dt_str, toUnixTimestamp(dt_str) AS from_str,
toUnixTimestamp(dt_str, 'Asia/Tokyo') AS from_str_tokyo,
toUnixTimestamp(toDateTime(dt_str)) AS from_datetime,
toUnixTimestamp(toDateTime64(dt_str, 0)) AS from_datetime64 FORMAT Vertical;
Row 1:
──────
dt_str: 2017-11-05 08:07:47
from_str: 1509840467
from_str_tokyo: 1509836867
from_datetime: 1509840467
from_datetime64: 1509840467