Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 将文本字段转换为日期_Mysql_Sql_Sql Update - Fatal编程技术网

Mysql 将文本字段转换为日期

Mysql 将文本字段转换为日期,mysql,sql,sql-update,Mysql,Sql,Sql Update,我使用的是MYSQL数据库,有一个字段包含各种格式的日期值,例如 1872-03-12 21 SEP 1881 July 14, 1847 1886 08 Apr 1851 10 Feb 1898 2/22/1883 01 Oct 1854 May 9,1909 30 Oct 1856 3 Nov 1856 9 Jan 1856 July 26, 1860 Feb. 16, 1896 1908-1920 24 Nov 1853 1/12/1881 03 Dec 1819 18 Sep 1883

我使用的是MYSQL数据库,有一个字段包含各种格式的日期值,例如

1872-03-12
21 SEP 1881
July 14, 1847
1886
08 Apr 1851
10 Feb 1898
2/22/1883
01 Oct 1854
May 9,1909
30 Oct 1856
3 Nov 1856
9 Jan 1856
July 26, 1860
Feb. 16, 1896
1908-1920
24 Nov 1853
1/12/1881
03 Dec 1819
18 Sep 1883
26 Nov 1868
我想将其转换为日期格式而不是文本,而且当前日期字段包含不正确的日期值,转换时应忽略这些值

我尝试了下面的方法,但是由于格式不同,没有得到很好的结果

Update IGNORE data set pDate = STR_TO_DATE(oldDate,'%d/%c/%Y') where pDate is null;

您必须费尽心思找出格式,然后进行转换:

update ignore data
    set pdate = (case when oldDate rlike '[12][0-9]{3}-[0-1][0-9]-[0-3][0-9]'
                      then str_to_date(oldDate, '%Y-%m-%d')
                      . . .
                 end)
听起来不好玩。但是,在列中包含不一致的数据更糟糕