我需要帮助将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
我需要帮助将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
试试这个查询,只需添加结束格式 -
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 |
+-------------+
您可以使用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。