Вопрос по datetime, unix-timestamp, timestamp, mysql – MySQL конвертирует дату и время в метку времени Unix

122

Как мне преобразовать следующий формат в метку времени 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
Дата хранится в виде текста в БД? strnk
Кажется, что вопрос о MSSQL. Fedir RYKHTIK
Это действительно вопрос MySQL? Вашsyntax не предлагает так. Álvaro González

Ваш Ответ

4   ответа
201

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')
это может читаться так, 2018-01-25T13: 39: 40-05: 00?
@redcoder это MYSQL
это для MSSQL? redcoder
11

UNIX_TIMESTAMP() в вашем запросе MySQL.

в самой первой строке было разъяснено, что это на текущую дату.
Не отвечает на вопрос из исходного поста.
Я отредактировал, чтобы уточнить связь этого ответа с исходным вопросом и привести пример.
Оригинальный вопрос, заданный для преобразования определенного формата; это не ответ на этот вопрос. Я отменю понижающий голос, если вы отредактируете, чтобы уточнить это.
это для людей, которым нужно было конвертировать только текущую дату в своем запросе, отвечает на часть вопроса, нет необходимости в вашем контроле, Эван, люди проголосовали за то же самое, чтобы показать, что они нуждаются в этом
32

STR_TO_DATE преобразовать вашу дату в стандартный формат даты MySQL, иUNIX_TIMESTAMP чтобы получить метку времени из этого.

Учитывая формат вашей даты, что-то вроде

UNIX_TIMESTAMP(STR_TO_DATE(Sales.SalesDate, '%M %e %Y %h:%i%p'))

Уилл даст вам правильную метку времени. СмотриSTR_TO_DATE документация для получения дополнительной информации о строке формата.

-5

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
Этот ответ для MSSQL (хотя этот вопрос имеет некоторую путаницу).

Похожие вопросы