如何在MySQL中将时间戳转换为日期时间?

com*_*fan 119 mysql

如何转换13004640002011-03-18 16:00:00MySQL?

Ric*_*uin 185

使用FROM_UNIXTIME()MySQL中的函数

请记住,如果您使用的框架以毫秒为单位存储它(例如Java的时间戳),则必须除以1000以获得正确的Unix时间(以秒为单位).

  • 仅仅因为我已经完成了这个并且在输出中感到困惑:MySQL以秒为单位存储Unix时间,而许多其他框架以毫秒为单位存储它(即Java的时间戳).所以,如果你对来自某个使用毫秒用于Unix时间的地方的数据使用此函数,请记住除以1000. (4认同)
  • @JanusTroelsen`SELECT from_unixtime(unix_timestamp(TIMESTAMP("2011-12-01","22:01:23.048")))`有效.`TIMESTAMP()`不返回整数值. (3认同)

小智 59

DATE_FORMAT(FROM_UNIXTIME(`orderdate`), '%d-%m-%Y') as "Date" FROM `orders`
Run Code Online (Sandbox Code Playgroud)

如果给定日期采用编码格式,则这是最终解决方案 1300464000

  • 谢谢你 包括时间:DATE_FORMAT(FROM_UNIXTIME(\ orderdate \`),'%d-%m-%Y%H:%i:%s')作为“日期”,来自\ orders \ (3认同)

小智 13

回答Janus Troelsen的评论

使用UNIX_TIMESTAMP而不是TIMESTAMP

SELECT from_unixtime( UNIX_TIMESTAMP(  "2011-12-01 22:01:23.048" ) )
Run Code Online (Sandbox Code Playgroud)

TIMESTAMP函数返回Date或DateTime而不是时间戳,而UNIX_TIMESTAMP返回unix时间戳


小智 9

您可以使用

select from_unixtime(1300464000,"%Y-%m-%d %h %i %s") from table;
Run Code Online (Sandbox Code Playgroud)

有关详细说明

  1. from_unixtime()
  2. unix_timestamp()