Точность хранения времени

По умолчанию функции получения даты и времени возвращают значения с точностью до 1 микросекунды.

SELECT LOCALTIMESTAMP
# localtimestamp
1 2022-12-07 10:48:14.159634

Для получения времени с другой точностью необходимо передать параметр в функцию. Параметр принимает значение от 0 до 6:

  • 0 - с точностью до секунды
  • 6 - с точностью до микросекунды.
SELECT 0 AS precision, LOCALTIMESTAMP(0)
 UNION 
SELECT 1 AS precision, LOCALTIMESTAMP(1)
 UNION 
SELECT 2 AS precision, LOCALTIMESTAMP(2)
 UNION 
SELECT 3 AS precision, LOCALTIMESTAMP(3)
 UNION 
SELECT 4 AS precision, LOCALTIMESTAMP(4)
 UNION 
SELECT 5 AS precision, LOCALTIMESTAMP(5)
 UNION 
SELECT 6 AS precision, LOCALTIMESTAMP(6)
ORDER BY 1
# precision localtimestamp
1 0 2022-12-07 11:18:41
2 1 2022-12-07 11:18:40.6
3 2 2022-12-07 11:18:40.64
4 3 2022-12-07 11:18:40.639
5 4 2022-12-07 11:18:40.639
6 5 2022-12-07 11:18:40.63902
7 6 2022-12-07 11:18:40.63902

Если передать значение больше 6, то результат будет возвращаться с точностью до микросекунд:

SELECT LOCALTIMESTAMP(8)
# localtimestamp
1 2022-12-07 11:28:42.270627

Если передать отрицательное значение, то произойдет ошибка

SELECT LOCALTIMESTAMP(-1)
syntax error at or near "-"

Параметр точности можно передать в функции CURRENT_TIMESTAMP, CURRENT_TIME, LOCALTIMESTAMP, LOCALTIME.

Функция CURRENT_DATE не имеет такого параметра.

9.1 Текущая дата на сервере

9.3 Форматирование даты и времени