如何在 Microsoft SQL Server 中从一种日期格式转换为另一种日期格式?

发布于 2024-12-13 10:38:03 字数 166 浏览 0 评论 0原文

我有一个以“MM/DD/YYYY”(101) 格式存储的日期,我想将其转换为“DD/MM/YYYY”(103)。源日期(101 格式的日期)最初存储为 varchar,因此我猜测您首先需要将其转换为日期类型,然后再更改其格式。

所以实际上我的问题是,“如何更改存储为 varchar 的日期的格式?”。

I have a date that is stored in 'MM/DD/YYYY' (101) format and I would like to convert it to 'DD/MM/YYYY' (103). The source date (date in 101 format) is stored as a varchar initially, so I am guessing you would first need to convert it to a date type before changing it's format.

So practically my question is, "how do you change the format of a date stored as a varchar?".

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

醉城メ夜风 2024-12-20 10:38:03

试试这个...

select CONVERT(varchar(10), CONVERT(datetime, '12/31/2011', 101), 103)

try this...

select CONVERT(varchar(10), CONVERT(datetime, '12/31/2011', 101), 103)
用心笑 2024-12-20 10:38:03

如果您想要一个 DATE 类型的值,则不需要用另一个 CAST 包装整个转换。你可以直接转换/投射它,就像

select CONVERT(date, CONVERT(datetime, '12/31/2011', 101))

select CONVERT(date, '12/31/2011', 101) 

if you want to have a value of type DATE, you don't need to wrap the entire conversion with another CAST. you can just convert/cast it directly like

select CONVERT(date, CONVERT(datetime, '12/31/2011', 101))

or

select CONVERT(date, '12/31/2011', 101) 
豆芽 2024-12-20 10:38:03

CAST 和 CONVERT 是您的朋友。特别查看日期格式代码。

CAST and CONVERT are your friends here. Take a look at the date format codes in particular.

若水般的淡然安静女子 2024-12-20 10:38:03

我使用 Leon Tayson 的答案来修复具有混合日期格式的字段,使用以下位置的代码:
https://www.mssqltips.com /sqlservertip/1145/date-and-time-conversions-using-sql-server/

/**MM-DD-YYYY to YYYY-MM-DD **/
UPDATE [DBO].[TABLE]
   SET [DATEFIELD] = CONVERT(varchar(10), CONVERT(datetime, DATEFIELD, 110), 23)
where DATEFIELD like '__-__-____'

/** excel date serial number to YYYY-MM-DD **/
UPDATE [DBO].[TABLE]
   SET [DATEFIELD] = dateadd(DAY, convert(bigint, DATEFIELD) , convert(date, '1-1-1900'))
 Where Len(UPDATED_DATE) = 5

/** YYYY to YYYY-MM-DD **/
UPDATE [DBO].[TABLE]
SET [DATEFIELD] = DATEFIELD + '-01-01'
Where Len(DATEFIELD) = 4

I used Leon Tayson's answer to fix a field with mixed date formats, using codes from this location:
https://www.mssqltips.com/sqlservertip/1145/date-and-time-conversions-using-sql-server/

/**MM-DD-YYYY to YYYY-MM-DD **/
UPDATE [DBO].[TABLE]
   SET [DATEFIELD] = CONVERT(varchar(10), CONVERT(datetime, DATEFIELD, 110), 23)
where DATEFIELD like '__-__-____'

/** excel date serial number to YYYY-MM-DD **/
UPDATE [DBO].[TABLE]
   SET [DATEFIELD] = dateadd(DAY, convert(bigint, DATEFIELD) , convert(date, '1-1-1900'))
 Where Len(UPDATED_DATE) = 5

/** YYYY to YYYY-MM-DD **/
UPDATE [DBO].[TABLE]
SET [DATEFIELD] = DATEFIELD + '-01-01'
Where Len(DATEFIELD) = 4
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文