如何将UNIX TIME转换为SQL datetime格式

sam*_*sam 2 mysql sql datetime timestamp

select COUNT(DISTINCT devices) AS "Devices" from measure_tab where 
  measure_tab.time >= 1375243200 and 
  measure_tab.time < 1375315200;
Run Code Online (Sandbox Code Playgroud)

上面的sql查询的输出给出了一个表,其中包含一个名为"Devices"的列,其中包含多个设备.我希望时间是measure_tab的一个属性也应该显示在输出表的另一列中,UNIX TIME在此查询中为1375243200转换为SQL日期时间格式Thu Aug 1 00:00:00 UTC 2013.

有人可以帮我吗?

谢谢

Sur*_*shi 5

您可以使用以下功能:

select FROM_UNIXTIME(UNIX_TIMESTAMP(),'%a %b %d %H:%i:%s UTC %Y');
Run Code Online (Sandbox Code Playgroud)

输出将是:

'Wed Feb 05 05:36:16 UTC 2014'
Run Code Online (Sandbox Code Playgroud)

在您的查询中

select COUNT(DISTINCT devices) AS "Devices",
  FROM_UNIXTIME(measure_tab.time,'%a %b %d %H:%i:%s UTC %Y') as d from measure_tab where 
  measure_tab.time >= 1375243200 and 
  measure_tab.time < 1375315200;
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请查看文档:http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_from-unixtime

你可以看到sql小提琴:http://sqlfiddle.com/#!2/a2581/ 20357