MySql, объединяющий столбец даты и времени в метку времени - PullRequest
33 голосов
/ 08 ноября 2010

Я предполагаю, что это сделать относительно просто, но я не уверен в синтаксисе. У меня есть столбцы даты и времени, которые я хочу объединить в столбец отметки времени. как бы я запросить это с помощью выбора?

Ответы [ 6 ]

64 голосов
/ 26 июня 2012

Или вы можете попробовать встроенную функцию TIMESTAMP(date,time).

47 голосов
/ 08 ноября 2010

Mysql, похоже, не имеет конструктора для datetime, например datetime ('2017-10-26', '09: 28: 00 '). Таким образом, вам придется рассматривать составную часть как строку и использовать функцию конкатенации строк (обратите внимание, что в mysql нет оператора || для конкатенации строк). Если вам нужен тип datetime, вам придется его разыграть.

concat(datefield,' ',timefield) as date

select cast(concat('2017-10-26', ' ', '09:28:00') as datetime) as dt;
5 голосов
/ 20 октября 2012

Если возможно использовать встроенную функцию, просто используйте ее.В любом случае, вот пример для поиска записей между заданными временными метками.

SELECT `id` FROM `ar_time` WHERE TIMESTAMP(`cdate`,`ctime`) BETWEEN fromTimeStamp AND nowTimeStamp;
2 голосов
/ 13 февраля 2015

В течение 24 часов

TIMESTAMP(Date, STR_TO_DATE(Time, '%h:%i %p'))
1 голос
/ 10 июля 2015
SELECT * FROM tablename WHERE TIMESTAMP(datecol, timecol) > '2015-01-01 12:00:00';
0 голосов
/ 12 апреля 2016

O.P. сказал SELECT, но если кто-то захочет добавить столбец отметки времени :

ALTER TABLE `t` ADD COLUMN `stamp` TIMESTAMP;
UPDATE `t` SET `stamp` = STR_TO_DATE(CONCAT(`Date`, ' ', `Time`), '%m/%d/%Y %H:%i:%s');

Настройка формат строки по вкусу.

...