在 T-SQL 中转换字符串 (YYYMMDD)
我有一个像 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
CONVERT 允许双向转换 datetime/varchar 的样式。也就是说,您有一种未列出的格式。而且你实际上也有 2 个转换:你需要首先将其转换为日期时间
在我的本地 SQL 安装中,它具有默认的“us_english”设置,这是开箱即用的
,因此
你可以使用 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
thus
You can use SET LANGUAGE to modify to us_english temporarily
前往 http://www.sql-server-helper.com/提示/日期格式.aspx
Head over to http://www.sql-server-helper.com/tips/date-formats.aspx
我首先没有看到它是一个需要转换的 varchar 列。
因此,正如我在对 Gidon 的回答的评论中所说,基本上您应该像这样:
CONVERT(varchar(8), CAST(your_varchar_date AS datetime), 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:
我刚刚在我的博客上发布了一个函数,支持使用 .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