在 T-SQL 中转换字符串 (YYYMMDD)

发布于 2024-10-15 05:57:13 字数 299 浏览 5 评论 0原文

我有一个像 5/21/2008 0:00 这样的 varchar 列 exit_date,我需要将其更新为像 YYYYMMDD 这样的字符串,有什么方法可以做到这一点吗?

5/21/2008 0:00  ==> 20080521  
1/1/2007 0:00   ==> 20070101

如何做类似的事情

select convert('5/21/2008 0:00', 'YYYYMMDD').

I have a column exit_date with varchar like 5/21/2008 0:00 and I need to update it to a string like YYYYMMDD, any way to do that?

5/21/2008 0:00  ==> 20080521  
1/1/2007 0:00   ==> 20070101

How to do something like

select convert('5/21/2008 0:00', 'YYYYMMDD').

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

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

发布评论

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

评论(4

旧人九事 2024-10-22 05:57:13

CONVERT 允许双向转换 datetime/varchar 的样式。也就是说,您有一种未列出的格式。而且你实际上也有 2 个转换:你需要首先将其转换为日期时间

在我的本地 SQL 安装中,它具有默认的“us_english”设置,这是开箱即用的

select convert(datetime, '5/21/2008 0:00')

,因此

select convert(char(8), convert(datetime, '5/21/2008 0:00'), 112)

你可以使用 SET LANGUAGE 临时修改为 us_english

CONVERT allows a style for conversions datetime/varchar in both directions. Saying that, you have a format that is not listed. And you actually have 2 conversions too: you need to get it into datetime first

In my local SQL install that has the default "us_english" settings, this works out of the box

select convert(datetime, '5/21/2008 0:00')

thus

select convert(char(8), convert(datetime, '5/21/2008 0:00'), 112)

You can use SET LANGUAGE to modify to us_english temporarily

開玄 2024-10-22 05:57:13

我首先没有看到它是一个需要转换的 varchar 列

因此,正如我在对 Gidon 的回答的评论中所说,基本上您应该像这样:CONVERT(varchar(8), CAST(your_varchar_date AS datetime), 112)

如果您要就地转换值,那么这里是如何应用它的更完整的示例:

UPDATE your_table
SET exit_date = CONVERT(varchar(8), CONVERT(datetime, exit_date), 112)

I didn't see first that it was a varchar column that needed the conversion.

So, as I said in my comment to Gidon's answer, basically you should probably go like this: CONVERT(varchar(8), CAST(your_varchar_date AS datetime), 112).

If you are converting the values in-place, then here's a fuller example of how to apply it:

UPDATE your_table
SET exit_date = CONVERT(varchar(8), CONVERT(datetime, exit_date), 112)
同尘 2024-10-22 05:57:13

我刚刚在我的博客上发布了一个函数,支持使用 .Net 样式格式掩码在 T-SQL 中进行日期转换。不想插入我的博客或任何东西,它只是我发布代码片段的地方。

使用我的函数 SELECT dbo.fnc_FormatDate(getdate(), 'YYYYMMDD') 将执行您想要的操作。

http://bitmugger.blogspot.com /2011/07/convert-t-sql-datetime-to-strings-using.html

I just posted a function on my blog to support date conversions in T-SQL using .Net style format masks. Not trying to plug my blog or anything it's just where I post my code snippets.

Using my function SELECT dbo.fnc_FormatDate(getdate(), 'YYYYMMDD') will do what you want.

http://bitmugger.blogspot.com/2011/07/convert-t-sql-datetime-to-strings-using.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文