Py学习  »  DATABASE

mysql cast varchar,格式为“mm dd yyy”,输入日期[重复]

Zirui Bai • 4 年前 • 870 次点击  

我用的是一个以字符串形式存储日期的系统 dd/mm/yyyy . 是否可以将此转换为 yyyy-mm-dd 在select查询中(以便我可以使用 DATE_FORMAT 在上面)?mysql有日期解析功能吗?

目前我能想到的唯一方法是连接一堆子串,但希望有一个更简单的解决方案。

(不幸的是,我无法将字段转换为真正的日期字段,因为它是一个元表:同一列包含不同字段的值,这些字段只是字符串。)

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/40341
 
870 次点击  
文章 [ 4 ]  |  最新文章 4 年前
h4rp0
Reply   •   1 楼
h4rp0    14 年前
SELECT STR_TO_DATE(dateString, '%d/%m/%y') FROM yourTable...
monksy
Reply   •   2 楼
monksy    14 年前

STR_TO_DATE 允许您执行此操作,并且它有一个格式参数。

nos
Reply   •   3 楼
nos    14 年前

是的,有 str_to_date

mysql> select str_to_date("03/02/2009","%d/%m/%Y");
+--------------------------------------+
| str_to_date("03/02/2009","%d/%m/%Y") |
+--------------------------------------+
| 2009-02-03                           |
+--------------------------------------+
1 row in set (0.00 sec)
OMG Ponies
Reply   •   4 楼
OMG Ponies    14 年前

这是:

STR_TO_DATE(t.datestring, '%d/%m/%Y')

…将字符串转换为日期时间数据类型。为了确保它以您想要的格式出现,请使用 DATE_FORMAT :

DATE_FORMAT(STR_TO_DATE(t.datestring, '%d/%m/%Y'), '%Y-%m-%d')

如果不能更改原始列上的数据类型,我建议 creating a view 使用 STR_TO_DATE 调用以将字符串转换为日期时间数据类型。