首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL VarChar到目前为止

SQL VarChar到目前为止
EN

Stack Overflow用户
提问于 2011-01-25 12:11:44
回答 2查看 21.5K关注 0票数 3

嗨,我正在尝试将一个VarChar日期字段(例如20100320)转换为一个真正的日期字段,如

'dd/mm/yyyy' (e.g. 20/03/2010).

我尝试过两种方法:( a)

代码语言:javascript
复制
 (SELECT    MIN(CAST(A.DateOfAction AS Date)) AS Expr1
           FROM      ResAdm.Action A
           WHERE    (A.PersonID = P.PersonID)) 

     AS 'Period From',

b)

代码语言:javascript
复制
(SELECT    MIN(CONVERT(DATE, A.DateOfAction, 103)) AS Expr1
           FROM      ResAdm.Action A
           WHERE    (A.PersonID = P.PersonID)) 

     AS 'Period From',

都会产生类似的结果

yyyy dd(例如2010-03-20)

但我希望结果就像

dd/mm/yyyy (例如20/03/2010)

任何帮助都将不胜感激。谢谢。

EN

回答 2

Stack Overflow用户

发布于 2011-01-25 12:21:13

试试这个:

代码语言:javascript
复制
select convert(varchar(8), convert(datetime, min(a.DateOfAction), 112), 103)

您的问题是,一旦您有了日期格式,Server将以其默认日期格式将其转储出去,您已经发现该格式是yyyy-mm-dd。您需要从date转换到varchar以获得所需的格式。但是要从日期开始转换,首先需要转换为date!112是yyyymmdd的格式,103是dd/mm/yyyy的格式,所以这就是为什么需要这些格式。(日期格式的联机参考书籍)

票数 5
EN

Stack Overflow用户

发布于 2011-01-25 12:17:29

代码语言:javascript
复制
Declare @date nvarchar(100)
set @date = '20100320'
select convert(varchar, CONVERT(datetime, @date, 109), 103)

您可以使用

代码语言:javascript
复制
convert(varchar, CONVERT(datetime, A.DateOfAction, 109), 103)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4793311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档