小弟在此感谢各位
5 个解决方案
#1
你的要求是什么,比如什么样子的字符串算是 日期呢,大概的格式是怎样的,是否包含时分秒,这个你要确定下来
#2
补充下:日期是不包含时分秒的
比如说2012-01-02就是日期,2012-02-30就不是。也没必要严格要求闰年啥的了
比如说2012-01-02就是日期,2012-02-30就不是。也没必要严格要求闰年啥的了
#3
这个用正则会非常复杂。毕竟 20xx-02-29是不是日期就非常难。
建议直接用日期转换函数测试一下,如果正常转换就是日期,反之不是。
建议直接用日期转换函数测试一下,如果正常转换就是日期,反之不是。
#5
直接这么写就好了
SELECT DATE_FORMAT(dtstr, '%Y-%m-%d') AS dt FROM tbl
字符串如果能转成日期的,就是OK的,会有值, 不能转成日期的, 查询的结果就是 null 了
SELECT DATE_FORMAT(dtstr, '%Y-%m-%d') AS dt FROM tbl
字符串如果能转成日期的,就是OK的,会有值, 不能转成日期的, 查询的结果就是 null 了
#1
你的要求是什么,比如什么样子的字符串算是 日期呢,大概的格式是怎样的,是否包含时分秒,这个你要确定下来
#2
补充下:日期是不包含时分秒的
比如说2012-01-02就是日期,2012-02-30就不是。也没必要严格要求闰年啥的了
比如说2012-01-02就是日期,2012-02-30就不是。也没必要严格要求闰年啥的了
#3
这个用正则会非常复杂。毕竟 20xx-02-29是不是日期就非常难。
建议直接用日期转换函数测试一下,如果正常转换就是日期,反之不是。
建议直接用日期转换函数测试一下,如果正常转换就是日期,反之不是。
#4
#5
直接这么写就好了
SELECT DATE_FORMAT(dtstr, '%Y-%m-%d') AS dt FROM tbl
字符串如果能转成日期的,就是OK的,会有值, 不能转成日期的, 查询的结果就是 null 了
SELECT DATE_FORMAT(dtstr, '%Y-%m-%d') AS dt FROM tbl
字符串如果能转成日期的,就是OK的,会有值, 不能转成日期的, 查询的结果就是 null 了