Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/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
sql日期格式“;2019年10月30日&引用;2019/10/30“&引用;2019年10月30日“;及;2019年10月30日“;_Sql_Mariadb - Fatal编程技术网

sql日期格式“;2019年10月30日&引用;2019/10/30“&引用;2019年10月30日“;及;2019年10月30日“;

sql日期格式“;2019年10月30日&引用;2019/10/30“&引用;2019年10月30日“;及;2019年10月30日“;,sql,mariadb,Sql,Mariadb,我认为毫无疑问,在sql中,“2019-10-30”是有效的日期格式,看起来像是“2019/10/30”也被接受 那么“10-30-2019”和“10/30/2019”呢 我在mariaDB中尝试了它们,但它们的格式错误,但不知何故,我认为我确实在一些sql表中看到了它们。请帮我澄清日期格式。谢谢在MariaDB中,日期的格式是yyyy-mm-dd。但MariaDB相当宽松,其他格式也被接受;发件人: 日期字符串是以下格式之一的字符串:'YYYY-MM-DD'或'YY-MM-DD'。请注意,任何

我认为毫无疑问,在sql中,“2019-10-30”是有效的日期格式,看起来像是“2019/10/30”也被接受

那么
“10-30-2019”
“10/30/2019”


我在mariaDB中尝试了它们,但它们的格式错误,但不知何故,我认为我确实在一些sql表中看到了它们。请帮我澄清日期格式。谢谢

在MariaDB中,日期的格式是
yyyy-mm-dd
。但MariaDB相当宽松,其他格式也被接受;发件人:

日期字符串是以下格式之一的字符串:
'YYYY-MM-DD'
'YY-MM-DD'
。请注意,任何标点符号都可以用作分隔符。所有分隔符必须由1个字符组成。同一字符串中可以使用不同的分隔符。分隔符是可选的(但如果使用一个分隔符,则必须使用所有分隔符)

DATE
文本也可以是整数,格式如下:
YYYYMMDD
YYMMDD

以下所有
DATE
文字均有效,且均表示相同的值:

'19940101'

'940101'

'1994-01-01'

'94/01/01'

'1994-01/01'

'94:01!01'

19940101

940101

因此,对于您提供的示例:

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\u to\u date()
将字符串转换为日期


您真正要做的是将日期的字符串表示形式转换为内部日期时间表示形式或数据类型。您所指的格式是。ISO日期(2019-10-30,带连字符或括号)格式通常是大多数数据库使用的本机或默认字符串转换,这就是为什么即使不指定转换,这些格式也可以工作的原因。如果要从其他格式转换,可能需要指定它们。本地设置的默认表示形式也可能有效,但这取决于特定的数据库。

还有一个问题,当我尝试使用此
stru-to-u日期(“2019年10月31日,“%m/%d/%y”)
-请注意,小写
%y
,我会得到错误的结果
2020-10-31
。这里的
%Y
%Y
有什么区别?@JamesWang:上面的Y代表4位数的年份,下面的Y代表2位数(如果你给下面的Y赋4位数,它取前2位数,忽略其余的,因此得到的结果)。
str_to_date('10-30-2019', '%m-%d-%Y')
str_to_date('10/30/2019', '%m/%d/%Y')