# 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, da toTimezone die Zeitzone einer Spalte ändert (Zeitzone ist ein Attribut von DateTime*-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