我有一个 SQL 表,有一列,每一行都包含一个字符串值,如下所示:
Fri, 31 Oct 2014 01:51:22 +0000
如何使用 Python 将其转换为正常的 d-m-Y 日期?如果不可能,我可以在 MySQL 中完成吗?我尝试使用 PHPMyAdmin 数据转换功能,但它没有将其识别为日期。
编辑,尝试这样做,我得到一个空值作为返回。
SELECT str_to_date(`date_created`, 'DD-MM-YYYY') FROM `orders` WHERE id = "1"
最佳答案
Python 解决方案:
>>> from datetime import datetime
>>> date_string = 'Fri, 31 Oct 2014 01:51:22 +0000'
>>> format_string = '%a, %d %b %Y %I:%M:%S %z'
>>>
>>> date_object = datetime.strptime(date_string, format_string)
>>> date_object
datetime.datetime(2014, 10, 31, 1, 51, 22, tzinfo=datetime.timezone.utc)
>>> date_object.strftime("%d-%m-%Y")
'31-10-2014'
>>>
MySQL解决方案:
mysql> set @date_string := 'Fri, 31 Oct 2014 01:51:22 +0000';
Query OK, 0 rows affected (0.00 sec)
mysql> set @format_string = '%a, %d %b %Y %I:%i:%S %x';
Query OK, 0 rows affected (0.00 sec)
mysql> select @dt:=str_to_date( @date_string, @format_string ) as dt,
-> date_format( @dt, '%d-%m-%Y' ) as ddmmyy;
+---------------------+------------+
| dt | ddmmyy |
+---------------------+------------+
| 2014-10-31 01:51:22 | 31-10-2014 |
+---------------------+------------+
1 row in set, 1 warning (0.00 sec)
警告必须在时区上,因为格式无法识别。
mysql> show warnings\G
*************************** 1. row ***************************
Level: Warning
Code: 1292
Message: Truncated incorrect datetime value: 'Fri, 31 Oct 2014 01:51:22 +0000'
1 row in set (0.00 sec)
引用:
关于python - 使用 Python 将包含复杂日期值的字符串转换为日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29601119/