社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

在mysql中,如何将日期格式从“am/pm”为字符串的日期改为实际日期?

Florian Castelain • 5 年前 • 1726 次点击  

我有一列日期,以字符串形式写,结尾是“am”和“pm”,例如:

1/1/2016 12:00:00.000 AM

列的类型当前为 varchar ,我想将类型更改为 datetime 格式。

尝试1

从phpmyadmin dashboard更改列类型会出现以下错误:

Query error:
#1292 - Incorrect datetime value: '1/1/2016 12:00:00.000 AM'

尝试2

考虑到日期的格式,我尝试使用STR_to_date函数。但它没有给出预期的结果。而是为每一行返回相同的日期。

SELECT STR_TO_DATE(`assembling-machine-tag`.`Time`, "%Y") from `assembling-machine-tag` 

结果

enter image description here

那么,我如何更改列的格式 瓦查尔 (带格式= dd/mm/yy hh:mm:ss.ms AM )到 日期时间 (带格式= yyyy-mm-dd hh:mm:ss )在MySQL7.4.1中?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/52279
 
1726 次点击  
文章 [ 2 ]  |  最新文章 5 年前
Tim Biegeleisen
Reply   •   1 楼
Tim Biegeleisen    5 年前

我会使用这个版本:

SELECT STR_TO_DATE('1/1/2016 12:00:00.000 PM', '%d/%m/%Y %h:%i:%s.%f %p')
Salman A
Reply   •   2 楼
Salman A    5 年前

你只需要使用 correct pattern :

SELECT STR_TO_DATE('1/2/2016 01:02:03.456 AM', '%e/%c/%Y %h:%i:%s.%f %p')
-- 2016-02-01 01:02:03.456000

为了将varchar数据转换为datetime,首先需要创建一个 datetime 列并按如下方式更新:

UPDATE t SET `datetimetemp` = STR_TO_DATE(`varchardate`, '%c/%e/%Y %h:%i:%s.%f %p')

一旦对result drop满意,varchar列将被重命名为临时列。