从 nchar 列中选择 dd/mm/yyyy 格式的日期
Selecting date in format dd/mm/yyyy from nchar column
我在 nchar(255)
数据类型的列中有这种格式的日期
mm/dd/yyyy
现在想改成
dd/mm/yyyy
我不认为 CONVERT
在这方面对我有帮助,因为我尝试了如下不同的查询
SELECT CONVERT(NCHAR(20), col1, 103) from table1
SELECT CONVERT(VARCHAR(20), col1, 103) from table1
select Convert(varchar(10),CONVERT(date,col1,101),103) from table1
在我看来,英国格式的 103 仅从 yyyy-mm-dd
转换而来
所以我尝试 CAST
我的 col1 但我得到一个错误。
我错过了什么吗?有什么简单的方法可以做到这一点?
你可以试试这个:
SELECT CONVERT(VARCHAR, CONVERT(DATETIME, col1, 101), 103)
检查这个:
Select convert(varchar(15), cast('01/26/2015' as datetime), 103) as FormattedDate
其中,'01/26/2015' 是您的 col1
编辑后的答案:
Select convert(nchar(255), cast(col1 as datetime), 103) as FormattedDate From table1
其中 table1 是您的 table。
分两步完成。首先,使用 101 格式(即 mm/dd/yyyy)将字符串转换为日期。然后使用 103(即 dd/mm/yyyy)将日期显式转换回字符串:
select convert(varchar(255), convert(date, datecol, 101), 103)
两点。首先,我认为结果不需要是 nvarchar()
(字符串只包含数字和斜线)。其次,在 SQL 服务器中使用 varchar()
时始终包含一个长度。
Here有点SQL Fiddle.
我正在回答我自己的问题。(以防万一有人想知道解决方案是什么)
我使用的查询没有这样的问题。即
select Convert(varchar(10),CONVERT(date,col1,101),103) from table1
问题出在我的 nchar 字段上。
它在每个条目中都有一个特殊字符(在我的例子中是 space),在尝试转换或转换时出现 "out-of-range" 错误。
所以删除特殊字符 (a space) 解决了我的问题。
我在 nchar(255)
数据类型的列中有这种格式的日期
mm/dd/yyyy
现在想改成
dd/mm/yyyy
我不认为 CONVERT
在这方面对我有帮助,因为我尝试了如下不同的查询
SELECT CONVERT(NCHAR(20), col1, 103) from table1
SELECT CONVERT(VARCHAR(20), col1, 103) from table1
select Convert(varchar(10),CONVERT(date,col1,101),103) from table1
在我看来,英国格式的 103 仅从 yyyy-mm-dd
所以我尝试 CAST
我的 col1 但我得到一个错误。
我错过了什么吗?有什么简单的方法可以做到这一点?
你可以试试这个:
SELECT CONVERT(VARCHAR, CONVERT(DATETIME, col1, 101), 103)
检查这个:
Select convert(varchar(15), cast('01/26/2015' as datetime), 103) as FormattedDate
其中,'01/26/2015' 是您的 col1
编辑后的答案:
Select convert(nchar(255), cast(col1 as datetime), 103) as FormattedDate From table1
其中 table1 是您的 table。
分两步完成。首先,使用 101 格式(即 mm/dd/yyyy)将字符串转换为日期。然后使用 103(即 dd/mm/yyyy)将日期显式转换回字符串:
select convert(varchar(255), convert(date, datecol, 101), 103)
两点。首先,我认为结果不需要是 nvarchar()
(字符串只包含数字和斜线)。其次,在 SQL 服务器中使用 varchar()
时始终包含一个长度。
Here有点SQL Fiddle.
我正在回答我自己的问题。(以防万一有人想知道解决方案是什么)
我使用的查询没有这样的问题。即
select Convert(varchar(10),CONVERT(date,col1,101),103) from table1
问题出在我的 nchar 字段上。 它在每个条目中都有一个特殊字符(在我的例子中是 space),在尝试转换或转换时出现 "out-of-range" 错误。
所以删除特殊字符 (a space) 解决了我的问题。