我认为毫无疑问,在sql格式中,"2019-10-30"是有效的日期格式,看起来"2019/10/30"也被接受了。
"10-30-2019"和"10/30/2019"呢?
我用mariaDB尝试了它们,它们的格式是错误的,但不知怎么的,我想我确实在一些sql表中看到了它们。请帮助我澄清日期格式。谢谢
发布于 2019-11-10 23:36:54
在MariaDB中,日期的格式是yyyy-mm-dd。但是MariaDB非常宽松,其他格式也被接受;来自文献资料
DATE字符串是以下格式之一的字符串:'YYYY-MM-DD'或'YY-MM-DD'。注意,任何标点符号都可以用作分隔符。所有分隔符必须由一个字符组成。可以在同一个字符串中使用不同的分隔符。分隔符是可选的(但如果使用一个分隔符,则必须使用所有分隔符)。DATE文本也可以是整数,格式如下:YYYYMMDD或YYMMDD。 以下所有DATE文本都是有效的,它们都表示相同的值:'19940101''940101''1994-01-01''94/01/01''1994-01/01''94:01!01'19940101940101
因此,关于您提供的例子:
2019-10-30 -- ok: default format
2019/10/30 -- ok: format with alternative delimiter
10-30-2019 -- NOT ok
10/30/2019 -- NOT ok可以使用函数str_to_date()将字符串转换为日期。
str_to_date('10-30-2019', '%m-%d-%Y')
str_to_date('10/30/2019', '%m/%d/%Y')发布于 2019-11-10 23:44:01
您真正要做的是将日期的字符串表示形式转换为内部日期、时间表示或数据类型。您所指的格式是ISO 8601。ISO date (2019-10-30带连字符或括号)格式通常是大多数数据库使用的本机或默认字符串转换,这就是即使您没有指定转换,这些格式也能工作的原因。如果您打算从其他格式转换,您可能需要指定它们。本地设置的默认表示也可能工作,但这取决于特定的数据库。
https://stackoverflow.com/questions/58793911
复制相似问题