2017-10-04 55 views
1

我想从表mysql中选择数据,但我需要格式化为军事格式的varchar日期列,但无法获得我的愿望输出我的查询是在下面。Mysql按日期格式选择为24小时

"SELECT STR_TO_DATE(`hour`, '%Y-%m-%d %k:%i') AS `time` FROM `dataTable`" 

当我试图回显格式下面的时间出现。

2017-09-21 00:00:00 

我的愿望输出是低于它在24小时格式和删除秒,任何建议将是伟大的。

2017-09-21 18:00 
+1

什么日期存储在数据库中? –

+0

什么是*军事格式*? – Jens

+1

STR_TO_DATE _从特定格式创建日期;如果您想在输出之前格式化现有日期值,则需要对应DATE_FORMAT。而'%k'是没有前导零的小时,所以你可能更希望'%H' – CBroe

回答

4

使用mysql的Date_format函数。

"SELECT DATE_FORMAT(`hour`, '%Y-%m-%d %H:%i') AS `time` FROM `dataTable`" 

说明:


STR_TO_DATE功能总是在2008-09-15 22点23分00秒

SELECT STR_TO_DATE('Monday 15th September 2008 22:23:00', '%W %D %M %Y %H:%i:%s'); 
+----------------------------------------------------------------------------+ 
| STR_TO_DATE('Monday 15th September 2008 22:23:00', '%W %D %M %Y %H:%i:%s') | 
+----------------------------------------------------------------------------+ 
| 2008-09-15 22:23:00              | 
+----------------------------------------------------------------------------+ 
1 row in set (0.00 sec) 

的格式返回日期检查上面的例子:STR_TO_DATE函数中的第二个参数是参数1到te的格式函数中传递参数1格式的函数。

Reference taken from this link.

+0

谢谢先生,谢谢工作大! – KaoriYui

+0

@KaoriYui我很乐意帮助你。 :) –

相关问题