我正在尝试使用这种方法从PHP中查询MySQL中的时间数据:
SELECT UNIX_TIMESTAMP( DATE_ADD( a.`date_time`, INTERVAL 1 DAY ) ) * 1000 AS time FROM `graph_values` AS a
在运行MySQL 5.0.x的生产服务器上,它会按预期返回一个unix时间戳。但是,在运行MySQL 5.5.x的开发服务器上,它返回一个字符串"%qd"
。在本页的MySQL文档中的一些建议之后,我尝试将CAST
结果转换为无符号整数:
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_unix-timestamp
当我将UNIX_TIMESTAMP
函数的结果转换为UNSIGNED
时,查询返回了另一个字符串"%qu"
。
所以,显而易见的是,奇数字符串受到返回数据的数据类型的影响,但我从未见过PHP / MySQL的行为方式。
注意:这是使用PHP和mysqli。
有什么建议吗?
答案 0 :(得分:1)
您是否尝试将结果转换为其他类型(signed int,decimal)?
如果一切都出错 - 您可以使用像FROM_UNIXTIME(UNIX_TIMESTAMP(),'%s')这样的东西; 以另一种方式“施放”它。 http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_from-unixtime
虽然不是我希望在我的生产代码中拥有的东西......