我想知道是否有函数或简单的方法来传递格式日期mm/dd/yyyy例如:2022年11月1日(2022年11月1日)转换为此格式yyyy-mm-dd例如:2022-11-01现在,我把日期分割成一个字符串,分别得到日、月和年,然后按照我的意愿把它们放在一起,但我想知道是否有更好的方法来做到这一点。
bxjv4tth1#
这可以使用带有[USING culture]选项的PARSE来完成:
[USING culture]
PARSE ( string_value AS data_type [ USING culture ] )
在你的例子中
SELECT PARSE('11/01/2022' AS datetime2 USING 'en-US');
输出:
2022-11-01
上面给出了date类型,它应该适合大多数任务,但如果需要获得首选格式的字符串,可以使用FORMAT。
date
一个三个三个一个(请注意,一些国家/地区始终使用两位数表示日和月,而另一些国家/地区则不使用)
DECLARE @d DATE = PARSE('11/01/2022' AS date USING 'en-US'); SELECT FORMAT( d, 'yyyy-MM-dd') 'yyyy-MM-dd';
fcy6dtqo2#
假设你在一个TEXT字段中存储一个日期,这是不好的,但是如果确实如此,第一步是首先将它解析成一个DATETIME对象:
PARSE('11/01/2022' AS datetime USING 'en-US')
现在,它位于DATETIME中,使用FORMAT()将其格式化为所需的格式:
SELECT FORMAT( PARSE('11/01/2022' AS datetime USING 'en-US') , 'yyyy-MM-dd')
退货:
2条答案
按热度按时间bxjv4tth1#
这可以使用带有
[USING culture]
选项的PARSE来完成:在你的例子中
输出:
上面给出了
date
类型,它应该适合大多数任务,但如果需要获得首选格式的字符串,可以使用FORMAT。A.培养物特定输出:
一个三个三个一个
(请注意,一些国家/地区始终使用两位数表示日和月,而另一些国家/地区则不使用)
B.固定格式输出:
fcy6dtqo2#
假设你在一个TEXT字段中存储一个日期,这是不好的,但是如果确实如此,第一步是首先将它解析成一个DATETIME对象:
现在,它位于DATETIME中,使用FORMAT()将其格式化为所需的格式:
退货: