MySql YYYY-MM-DDTHH:MM:SS到时间

时间:2014-04-24 09:01:03

标签: mysql date time

我有一个包含varchar列DateFrom的表,其格式为:

2014-02-22T08:08:00

我想要一个打印08:08的sql和一个打印22-02-2014的sql,但我似乎无法让时间功能起作用。

我想要做的是获取DateFrom中的所有条目并将其打印为时间(HH:MM) 与日期相同。

2 个答案:

答案 0 :(得分:3)

虽然我认为字符串函数在这种情况下是更好的选择(比如@hakre回答)并且cpu代价更低,但您也可以使用STR_TO_DATEDATE和{{1}来实现此目标功能。

TIME

答案 1 :(得分:1)

如果您不是在寻找date/time,而是在寻找字符串功能,可以在此处找到:

我认为对您的子字符串操作有用的一个字符串函数是SUBSTRING。您可以根据varchar列告诉您希望子字符串从一个位置开始一段长度:

SUBSTRING(DateFrom FROM 1 FOR 8) AS DateName -- "2014-02-22"
SUBSTRING(DateFrom FROM 10 FOR 5) AS TimeName -- "08:08"

使用其他字符串函数按您需要的顺序连接部件。

或者,您可以cast your varchar string in that format to a datetime type然后根据需要进行格式化:

CAST(DateFrom AS datetime)

有关强制转换类型和可用日期时间函数的更多信息,请参阅Mysql手册:

SQL示例:

SET @DateFrom = '2014-02-22T08:08:00';
SELECT DATE(CAST(@DateFrom AS datetime)); -- '2014-02-22'
SELECT TIME(CAST(@DateFrom AS datetime)); -- '08:08:00'