2012-09-09 49 views
54

我在表中存储了DATETIME字段。储存后它的价值就像 2012-09-09 06:57:12如何在DATETIME中分配DATE和TIME

为了存储我使用的语法:

date("Y-m-d H:i:s"); 

我现在的问题是,尽管获取数据,怎样才能既日期和时间分开,使用单MySQL查询。

Date like like 2012-09-09 and time like 06:57:12

+0

可能是你正在寻找'DATE_FORMAT'而不是'DATE'和' TIME',因为如果你正在寻找时间和默认时间,如果你正在寻找日期,它会给你默认的日期,请看下面的答案。 –

回答

90

可以实现,使用DATE_FORMAT()点击更多其他格式链接)

SELECT DATE_FORMAT(colName, '%Y-%m-%d') DATEONLY, 
     DATE_FORMAT(colName,'%H:%i:%s') TIMEONLY 

SQLFiddle Demo

+0

嗨,如何获得值?我可以使用'echo DATEONLY'打印日期和'echo TIMEONLY'打印时间?或者是什么?? –

+0

@MissRosy是的,你可以使用他们的别名(*例如DATEONLY和TIMEONLY *)来获取你想要的值。 –

+2

@MissRosy [点击链接进行演示](http://sqlfiddle.com/#!2/d41d8/1853) –

13

尝试:

SELECT DATE(`date_time_field`) AS date_part, TIME(`date_time_field`) AS time_part FROM `your_table` 
+0

这不会像用户所要求的那样得到'DATE'和'TIME'。它会给出整个日期和时间的默认值。 [销售此链接](http://sqlfiddle.com/#!2/d41d8/1845) –

+1

它会在* DATE *和'1970年1月01日生成'September,09 2012 00:00:00-0400' 03 :20:38-0500'为* TIME * –

+2

那么,根据查询它给出了2012-09-09作为date_part和06:57:12作为时间部分在mysql –

30

每mysql的文档中, DATE()函数将拉日期时间的日期部分,和时间部分的TIME()。所以我会尝试:

select DATE(dateTimeFeild) as Date, TIME(dateTimeFeild) as Time, col2, col3, FROM Table1 ... 
-3

仅供日期使用
date("Y-m-d");

并且仅使用一次
date("H:i:s");

+4

嘿你给一个PHP的解决方案不sql的:) – maq

相关问题