MySQL从毫秒字段中选择格式化日期

Jas*_*n C 23 mysql sql time date

我在MySQL数据库中有一个列,其中包含一个毫秒(epoch)的日期.我想构建一个SQL查询,将日期格式化为人类可读的内容(任何格式和时区的日,月,年,小时,分钟,秒).是否有SQL(或MySQL特定的)函数来执行此操作?

woo*_*eow 42

尝试使用手册中FROM_UNIXTIME给出的这样的功能

SELECT FROM_UNIXTIME(1196440219);
 -> '2007-11-30 10:30:19'

您也可以使用这样的格式

mysql> SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(),
    ->                      '%Y %D %M %h:%i:%s %x');
    -> '2007 30th November 10:30:59 2007'

  • 很好,谢谢.我的时间以毫秒为单位,因此稍作修改就完全符合我的要求:`SELECT FROM_UNIXTIME(\`column \`/ 1000)`. (11认同)

AbD*_*Riz 11

如果你想从一个字段获得微秒,使用%f,

select FROM_UNIXTIME(DATE_COLUMN/1000,'%Y-%M-%d %H:%i:%s %f') from TABLE_NAME;

+-------------------------------------------------------+
| FROM_UNIXTIME(CREATETIME/1000,'%Y-%M-%d %H:%i:%s %f') |
+-------------------------------------------------------+
| 2016-March-18 16:02:54 342000                         |
+-------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

资料来源:MYSQL DATE_FORMAT

  • 如果你将毫秒除以1000减少到秒,微秒不一定是0吗? (4认同)