Как преобразовать человеческую дату в метку времени unix в Mysql?

#mysql #date

#mysql #Дата

Вопрос:

У меня есть таблица с полем даты, в которой указана человеческая дата, например: ‘2008-01-08 19:23:32’ Теперь мне нужно скопировать это поле плюс некоторые другие поля той же таблицы в другую таблицу, но дата должна быть в метке времени unix.

Есть ли в mysql какая-либо функция, которая преобразует человеческую дату в метку времени unix внутри самого запроса?

Комментарии:

1. Просто обратите внимание, если дата, хранящаяся в вашей таблице, не указана в UTC, тогда вам, возможно, придется сначала преобразовать ее в часовой пояс UTC, а затем вызвать unix_timestamp(). Я не уверен unix_timestamp() , автоматически ли преобразуется дата-время в UTC перед вычислением метки времени.

2. Просто примечание .. это datetime тип поля, а не date тип поля. Разница есть.

Ответ №1:

 mysql> select unix_timestamp('2008-01-08 19:23:32');
 --------------------------------------- 
| unix_timestamp('2008-01-08 19:23:32') |
 --------------------------------------- 
|                            1199849012 |
 --------------------------------------- 
1 row in set (0.04 sec)
  

найдено здесь: http://www.epochconverter.com /

Ответ №2:

UNIX_TIMESTAMP() Должно сработать!

Из документов MySQL:

Если вызывается без аргумента, возвращает метку времени Unix (секунды с момента ‘1970-01-01 00:00:00’ UTC) в виде целого числа без знака. Если UNIX_TIMESTAMP() вызывается с аргументом date, он возвращает значение аргумента в секундах с момента ‘1970-01-01 00:00:00’ UTC. date может быть строкой ДАТЫ, строкой даты и времени, МЕТКОЙ ВРЕМЕНИ или числом в формате YYMMDD или YYYYMMDD. Сервер интерпретирует дату как значение в текущем часовом поясе и преобразует его во внутреннее значение в UTC.

 mysql> SELECT UNIX_TIMESTAMP();
        -> 1196440210
mysql> SELECT UNIX_TIMESTAMP('2007-11-30 10:30:19');
        -> 1196440219
  

Ответ №3:

 SELECT UNIX_TIMESTAMP('2007-11-30 10:30:19');
  

Ответ №4:

ДА. SELECT UNIX_TIMESTAMP(column) FROM TABLE

Ответ №5:

Запрос:

 SELECT UNIX_TIMESTAMP(TIMESTAMP(`opened`)) as timestamp_date, `opened` as datetime_type FROM `myterminal`
  

Выводит:

 | timestamp_date        | datetime_type     
|-------------------    |---------------------
| 1536602012            | 2018-09-10 14:53:32
| 1536603854            | 2018-09-10 15:24:14