mysql一列两种日期格式

5vf7fwbs  于 2021-06-21  发布在  Mysql
关注(0)|答案(0)|浏览(192)

我有一个表,其中包括以下列:

CREATE TABLE `tweets` (
(...)
    `timestamp` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci',
(...)
)
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
;

在本专栏中,我有两种不同的时间格式:
2014-08-20 20:17:00
18.04.2013 19:57
我正在尝试创建一个带有格式化日期的新表:

select
(...)   
case 
    when STR_TO_DATE(t.timestamp, '%Y-%m-%d %H:%i:%s') is null
        then STR_TO_DATE(t.timestamp, '%d.%m.%Y %H:%i') 
        else STR_TO_DATE(t.timestamp, '%Y-%m-%d %H:%i:%s')
end as timestamp,
(...)
from tweets;

select代码工作得很好,到目前为止,我了解到在mysql中,我不能更改日期在数据库中的存储方式,但我只能更改数据的视图。
然而。。。将日期存储为文本对我来说似乎不合适。当我试图通过添加以下内容保存此代码时:

create table `tweets_adj`
select 
(...)    >>>see above

我得到错误的datetime值:str\u to\u date函数的“18.04.2013 19:57”
如何正确设置数据库?
非常感谢。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题