在DB中有一个用于存储日期的列,以毫秒为单位。 我想从数据库中选择已排序的毫秒值。什么是出路?
例如,
表名:xyz, 列名:时间(数据类型:varchar(45))。
该表是包含行,其值为1390274501774,1390274536947,1390274570978,1390274611391和1390274659078等。这些值以毫秒为单位进行存储。
我想以“SORTED”方式使用php-mysql选择上述值。查询是什么?
如何在php-mysql中实现?
答案 0 :(得分:0)
您可以使用以下内容:
SELECT DATE_FORMAT(Time,'%d/%m/%Y') FROM xyz ORDER BY Time ASC
(或DESC降序)
您可以使用DATE_FORMAT()here
详细了解如何设置日期格式希望这有帮助!
答案 1 :(得分:0)
查询应该是:
Select `Time` FROM xyz ORDER BY FROM_UNIXTIME(`Time`/1000) ASC;
答案 2 :(得分:0)
如果数据是varchar格式,则ORDER BY子句必须转换类型 如果您需要将毫秒显示为日期,请将它们转换为秒并使用FROM_UNIXTIME。如果需要,此函数具有可选的格式参数 以其他格式而不是标准格式。
你可以这样做:
SELECT id, FROM_UNIXTIME(ROUND(Time/1000,0)) AS ooo FROM xyz ORDER BY Time+0
(在http://sqlfiddle.com/#!2/7b71b/4播放)
ORDER BY表达式,而不是索引字段,非常昂贵,性能明智,您需要尽可能简单。
您可以考虑不将它们存储为varchar而是bigint,甚至可以添加另一列DATETIME 保存实际日期。
这样可以在值列表中添加类似99274659078的内容 ORDER BY varchar的问题就是例证。