Есть ли способ в MySQL создать DATETIME из заданного атрибута типа DATE и заданного атрибута типа TIME?
Создание DATETIME с DATE и TIME
Ответ 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 - не забудьте учитывать часовые пояса и летнее время!