我的查询是这个...
SELECT a.ID, a.time, a.quote, a.quantity, a.media, a.print, a.pack
FROM quotes a
它像这样返回我的日期......
我如何使结果返回为March 2, 2012
或05/04/2012
或有意义的东西?
更新 - 下面的 FROM_UNIXTIME 答案列出了我运行查询时有时间的所有记录 - 我需要最初创建记录的时间 - 而不是查询时间。
还有其他想法吗?
您可以使用FROM_UNIXTIME执行此操作:
SELECT a.ID, FROM_UNIXTIME(a.time, '%M %e, %Y'),
a.quote, a.quantity, a.media, a.print, a.pack
FROM quotes a
您可以使用指定与DATE_FORMAT一起使用的格式以任何方式格式化日期。
尝试使用这个函数:FROM_UNIXTIME
在您的情况下,它将是这样的(对于第一个示例):
SELECT a.ID, FROM_UNIXTIME(a.`time`, '%M %e, %Y'),
a.quote, a.quantity, a.media, a.print, a.pack
FROM quotes a
此外,您可能想要做的是给结果一个别名:
SELECT a.ID, FROM_UNIXTIME(a.`time`, '%M %e, %Y') as formatted_time,
a.quote, a.quantity, a.media, a.print, a.pack
FROM quotes a
然后你将访问格式化的结果,而formatted_time
不是time
......
注意:请注意时间列名称在反引号中
a.`time`
反引号导致查询返回当前时间而不是时间列的值
SELECT DATE_FORMAT(FROM_UNIXTIME(a.`time`), '%M %e, %Y') AS `time`...
有关 DATE_FORMAT 可能性的完整列表,请参阅MySQL 手册。
看来您需要使用该FROM_UNIXTIME
功能。从文档中:
根据函数是在字符串还是数字上下文中使用,将 unix_timestamp 参数的表示形式返回为值
'YYYY-MM-DD HH:MM:SS'
或格式。YYYYMMDDHHMMSS.uuuuuu
您可以像这样使用 DATE_FORMAT 函数,
SELECT a.ID, DATE_FORMAT(a.time, '%M %D %Y'), a.quote, a.quantity, a.media,a.print,a.pack
FROM quotes a
SELECT a.ID, FROM_UNIXTIME(a.time), a.quote, a.quantity, a.media, a.print, a.pack
FROM quotes a