python - 使用 Python 将包含复杂日期值的字符串转换为日期

标签 python mysql date

我有一个 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/

相关文章:

php - PDO 期望显示所有结果,但只显示一个

mysql - 无法从已部署的 Kubernetes NodeJS 应用程序连接到 Google MySQL

python - 查询存储在 MySQL 中的多级 JSON 对象

java - android java,日期的周数不正确

为所有用户或仅为当前用户安装 Python?

python - pyqt:将信号与用户提供的变量动态连接?

python - 指定 cython 输出文件

python - 名称错误 : global name 'imfilter' is not defined

javascript - (新日期 ('2012-12-01' )).getMonth() === 10?

javascript - 如何在javascript中检查文本是否是具有特定日期格式的有效日期?