MySQL преобразует строку даты в метку времени Unix
Как преобразовать следующий формат в временную метку unix?
Apr 15 2012 12:00AM
Формат, который я получаю из БД, кажется, имеет AM
в конце.
Я пробовал использовать следующее, но это не сработало:
CONVERT(DATETIME, Sales.SalesDate, 103) AS DTSALESDATE,
CONVERT(TIMESTAMP, Sales.SalesDate, 103) AS TSSALESDATE
where Sales.SalesDate value is Apr 15 2012 12:00AM
Ответы
Ответ 1
Попробуйте этот запрос для CONVERT DATETIME to UNIX TIME STAMP
SELECT UNIX_TIMESTAMP(STR_TO_DATE('Apr 15 2012 12:00AM', '%M %d %Y %h:%i%p'))
Этот запрос для CHANGE DATE FORMATE
SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(STR_TO_DATE('Apr 15 2012 12:00AM', '%M %d %Y %h:%i%p')),'%m-%d-%Y %h:%i:%p')
Ответ 2
Вам, безусловно, придется использовать STR_TO_DATE
, чтобы преобразовать дату в формат стандартной даты MySQL и UNIX_TIMESTAMP
, чтобы получить от него временную метку.
Учитывая формат вашей даты, что-то вроде
UNIX_TIMESTAMP(STR_TO_DATE(Sales.SalesDate, '%M %e %Y %h:%i%p'))
Будет выдана действительная временная метка. Посмотрите документацию STR_TO_DATE
, чтобы получить дополнительную информацию о строках формата.
Ответ 3
Для текущей даты просто используйте UNIX_TIMESTAMP()
в вашем запросе MySQL.
Ответ 4
Из http://www.epochconverter.com/
SELECT DATEDIFF(s, '1970-01-01 00:00:00', GETUTCDATE())
My bad, SELECT unix_timestamp(time) Time format: YYYY-MM-DD HH:MM:SS or YYMMDD or YYYYMMDD. More on using timestamps with MySQL:
http://www.epochconverter.com/programming/mysql-from-unixtime.php