2013-03-28 290 views
4

我有一个mysql查询,它具有格式为“timestamp”的列CreationDate。例如:从MYSQL查询格式化时间戳

2013-03-27 18:32:45 

我想为SQL查询以它以这种方式(12小时格式秒)格式:

Friday 3/28/2013 12:52:34 PM 

我想在SQL级别来处理这种而非PHP或.js文件等

查询:

SELECT a.ID, a.CreationDate, a.Content, a.Type, u.Nickname 
FROM Announcements a 
INNER JOIN Accounts u ON a.FromAccountID = u.AccountID 
WHERE a.Status = '1' AND u.Status = '1' 
ORDER BY a.ID DESC 
+2

MySQL的['DATE_FORMAT()'](http://dev.mysql.com/doc/refman/ 5.1/en/date-and-time-functions.html#function_date-format) –

回答

6

你将要使用DATE_FORMAT

SELECT a.ID, 
    date_format(a.CreationDate, '%W %m/%d/%Y %l:%i %p') CreationDate, 
    a.Content, 
    a.Type, 
    u.Nickname 
FROM Announcements a 
INNER JOIN Accounts u 
    ON a.FromAccountID = u.AccountID 
WHERE a.Status = '1' 
    AND u.Status = '1' 
ORDER BY a.ID DESC 

MySQL的文档会显示什么说明符,你会用它来得到你想要的格式(见SQL Demo)。

如果你想保持秒,那么你将使用:

date_format(a.CreationDate, '%W %m/%d/%Y %r') 
+0

有没有办法在这个星期五保持秒数3/28/2013 12:52:02 PM – user1157800

+0

@ user1157800看到我的编辑,你会使用''%W%m /%d /%Y%r%p''作为格式 – Taryn

+0

我很抱歉,我怎样才能保持AM/PM的12小时格式呢? – user1157800

1

DATE_FORMAT(a.CreationDate,'%W %c/%e/%Y %h:%i %p')