0

我需要帮助将varchar类型列转换为具有日期时间值的DATETIME类型,并且我只需要其中的时间部分。即我有一列的值如下:

Verified_date
04/04/2013 03:17:08 PM
05/04/2013 10:10:13 AM
04/04/2013 03:45:15 PM

我只需要时间部分,即

Time
03:17:08 PM
10:10:13 AM
03:45:15 PM
4

3 回答 3

1

试试这个查询,只需添加结束格式 -

SELECT TIME(STR_TO_DATE('04/04/2013 03:17:08 PM', '%d/%c/%Y %h:%i:%s %p'));
+----------+
| 15:17:08 |
+----------+

一种更简单的解决方案 -

SELECT SUBSTRING_INDEX('04/04/2013 03:17:08 PM', ' ', -2);
+-------------+
| 03:17:08 PM |
+-------------+
于 2013-04-08T09:44:54.993 回答
1

您可以使用DATE_FORMAT使用此查询:

Select DATE_FORMAT(STR_TO_DATE(('04/04/2013 03:17:08 PM'), '%d/%m/%Y %r '), '%r')

此语句将为您提供所需的格式化日期,如03:17:08 PM.

您可以查看SQL Fiddle

于 2013-04-08T09:47:51.720 回答
0

试试这个

select DATE_FORMAT(STR_TO_DATE(start, '%d/%m/%Y %r'), '%r') from your_table;

参考日期和时间函数

于 2013-04-08T09:49:35.033 回答