2016-07-15 4 views
0

Я пытаюсь преобразовать TIMESTAMP типам DATETIME, DATE и TIME MySQL, используя FROM_UNIXTIME поле. Я заметил, что значения полей TIME и DATETIME имеют различную информацию о времени.различные значения для даты и времени, даты и времени полей с отметкой времени в MySQL

Вместо оператора вставки в таблицу, я заменить его простым оператора выбора, который печатает значения:

select FROM_UNIXTIME('1468561341') as timestamp_datetime,FROM_UNIXTIME('1468561341','%d/%m/%y') as timestamp_date, FROM_UNIXTIME('1468561341','%h:%m:%s %p') as timestamp_time 

Результаты выглядят следующим образом:

  • timestamp_datetime: 2016-07-15 05:42:21.000000
  • timestamp_date 15/07/16
  • timestamp_time 05:07:21 AM

Как я могу получить согласованное значение времени в обоих этих столбцах?

+0

Что вы имеете в виду о * последовательном значении времени *? – Blank

ответ

1

вопрос с буквой т

должно быть, я

mysql> select FROM_UNIXTIME(1468561341) as timestamp_datetime,FROM_UNIXTIME(1468561341,'%d/%m/%y') as timestamp_date, FROM_UNIXTIME(1468561341,'%h:%i:%s %p') as timestamp_time; 
+---------------------+----------------+----------------+ 
| timestamp_datetime | timestamp_date | timestamp_time | 
+---------------------+----------------+----------------+ 
| 2016-07-15 05:42:21 | 15/07/16  | 05:42:21 AM | 
+---------------------+----------------+----------------+ 
1 row in set (0.05 sec) 
+0

% m означает месяц не минут, чтобы получить минуту, пожалуйста, используйте i –

0

Ваша проблема заключается в том, что в вашем FROM_UNIXTIME вы, по сути говоря это сделать

hours-months-seconds -AM/PM 

Но вы хотите

hours-minutes-seconds -AM/PM 

Таким образом, измените его на

FROM_UNIXTIME(1468561341,'%h:%i:%s %p') 

вместо этого.

Справочное руководство для всех временных параметров и использование временных функций в MySQL здесь: https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

Смежные вопросы