mySQL两个日期格式在一列中

时间:2018-04-30 17:29:31

标签: mysql str-to-date

我有一张桌子,其中包括以下栏目:

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;

选择代码工作正常,到目前为止我学到了在mySQL中我不能改变日期存储在数据库中的方式,但我只能改变数据视图。

但是...... 将日期存储为文字对我来说似乎不对。当我尝试通过添加:

来保存此代码时
create table `tweets_adj`
select 
(...)    >>>see above

我收到错误错误的日期时间值:'18 .04.2013 19:57'对于函数str_to_date

如何以正确的方式设置数据库?

非常感谢你。

0 个答案:

没有答案