Подтвердить что ты не робот

Создание DATETIME с DATE и TIME

Есть ли способ в MySQL создать DATETIME из заданного атрибута типа DATE и заданного атрибута типа TIME?

4b9b3361

Ответ 1

datetime = CONCAT(date, ' ', time);

Ответ 2

Чтобы получить истинное значение DATETIME из двух разных значений DATE и TIME:

STR_TO_DATE(CONCAT(date, ' ', time), '%Y-%m-%d %H:%i:%s')

Ответ 3

Скопировано из документации MySQL:

TIMESTAMP (expr), TIMESTAMP (expr1, expr2)

С помощью одного аргумента эта функция возвращает выражение даты или даты и времени в качестве значения даты и времени. С двумя аргументами он добавляет выражение времени expr2 к выражению даты или datetime expr1 и возвращает результат как значение datetime.

mysql> SELECT TIMESTAMP('2003-12-31');
    -> '2003-12-31 00:00:00'
mysql> SELECT TIMESTAMP('2003-12-31 12:00:00','12:00:00');
    -> '2004-01-01 00:00:00'

Ответ 4

Вы можете использовать ADDTIME():

ADDTIME(CONVERT(date, DATETIME), time)
  • date может быть строкой даты или объектом date.
  • time может быть временной строкой или объектом time.

Протестировано в MySQL 5.5.

Ответ 5

Без создания и синтаксического анализа строк просто добавьте интервал к дате:

set @dt_text = '1964-05-13 15:34:05.757' ;
set @d = date(@dt_text) ;
set @t = time(@dt_text) ;
select @d, @t, @d + interval time_to_sec( @t ) second;

Однако это сокращает микросекунды.

Я согласен с Muki - не забудьте учитывать часовые пояса и летнее время!