日期转换问题:yyyy / MM / dd到dd / MM / yyyy

时间:2012-02-03 09:18:02

标签: sql sql-server date

我有一个日期列,日期格式为

2010-04-14
SQL Server中的

。有没有办法将日期格式检索为

14/04/2010

在select语句中?

4 个答案:

答案 0 :(得分:8)

试试这个:

SELECT CONVERT(VARCHAR(10), GETDATE(), 103) AS [DD/MM/YYYY]

Source Link

附录1:

正如我的评论中所述,您必须先将字段转换为DATETIME类型,然后才能执行上述操作。此示例应适用于您的SQL Server:

SELECT CONVERT(VARCHAR(10), CAST('2010-04-14' AS DATETIME), 103) AS [DD/MM/YYYY]

如果你遇到这个例外:

  

Msg 242,Level 16,State 3,Line 1   将varchar数据类型转换为日期时间数据类型会导致超出范围的值。

然后您需要将日期字段更改为YYYY-MM-DD格式,EG:2010-14-04

在select语句之前添加以下行:

SET DATEFORMAT MDY -- Input dates are in the MM/DD/YYYY format, change to DMY to handle UK dates

示例:

SET DATEFORMAT MDY;

SELECT CONVERT(VARCHAR(10), CAST('2010-04-14' AS DATETIME), 103) AS [DD/MM/YYYY]

答案 1 :(得分:1)

解决问题的另一种方法:

select substring(columnName, 9, 2) + '/' + substring(columnName, 6, 2)  + '/' + substring(columnName, 1, 4)

答案 2 :(得分:0)

如果您在SqlServer的显示该日期,则更好的方法是将该日期作为日期检索并将其转换为您之前想要的字符串表示形式显示它。

如何做到这一点取决于你的情况。

答案 3 :(得分:-1)

select replace(datetime,'-','/')