gpt4 book ai didi

mysql - 如何将 varchar 转换为 datetime,不起作用

转载 作者:行者123 更新时间:2023-11-29 05:50:47 25 4
gpt4 key购买 nike

我已经将文本文件中的一些列导入到我的表 stuff 中。

我必须将日期导入为 varchar(255)。我想将数据类型从 varchar 转换为 datetime

日期数据格式为:

6/2/2018 3:00:00 PM
6/2/2018 4:00:00 PM
6/2/2018 5:00:00 PM

我尝试了以下但没有成功:

select datum from stuff str_to_date(datum, %d/%m/%Y)

和:

select datum from stuff where convert(datetime,datum,103);

最佳答案

您查询的语法不正确。

STR_TO_DATE()确实意味着将字符串转换为日期。作为第二个参数,它需要一个表示输入字符串格式的字符串(不是乱码字符串!)。

鉴于您的日期格式,您可以使用:

SELECT STR_TO_DATE('6/2/2018 3:00:00 PM', '%e/%c/%Y %l:%i:%s %p')

格式说明符详细信息:

  • %e :一个月中的第几天,数字 (0..31)
  • %c : 月份,数字 (0..12)
  • %Y : 年份,数字,四位
  • %l : 小时 (1..12)
  • %i :分钟,数字 (00..59)
  • %s:秒数 (00..59)
  • %p : AMPM

Demo on DB Fiddle


如果你真的想转换列的数据类型,那么你需要创建一个临时列,用转换后的数据更新它,然后删除原始列并重命名临时列,如:

ALTER TABLE stuff ADD (datum_new datetime);
UPDATE stuff SET datum_new = STR_TO_DATE(datum, '%e/%c/%Y %l:%i:%s %p');
ALTER TABLE stuff DROP datum;
ALTER TABLE stuff CHANGE COLUMN datum_new datum datetime;

如果你使用的是 MySQL 8.0,最后一条语句可以写成:

ALTER TABLE stuff RENAME COLUMN datum_new TO datum;

关于mysql - 如何将 varchar 转换为 datetime,不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54582460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com