# 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, datoTimezone
die 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