Sql 日期转换问题:yyyy/MM/dd至dd/MM/yyyy
我有一个日期列,其中日期格式为Sql 日期转换问题:yyyy/MM/dd至dd/MM/yyyy,sql,sql-server,date,Sql,Sql Server,Date,我有一个日期列,其中日期格式为 2010-04-14 在SQL Server中。是否有任何可能的方法检索日期格式 14/04/2010 在select语句中?尝试以下操作: SELECT CONVERT(VARCHAR(10), GETDATE(), 103) AS [DD/MM/YYYY] 增编1: 如我在评论中所述,您需要先将字段转换为DATETIME类型,然后才能执行上述操作。此示例应适用于您的SQL Server: SELECT CONVERT(VARCHAR(10), CAST
2010-04-14
在SQL Server中。是否有任何可能的方法检索日期格式
14/04/2010
在select语句中?尝试以下操作:
SELECT CONVERT(VARCHAR(10), GETDATE(), 103) AS [DD/MM/YYYY]
增编1:
如我在评论中所述,您需要先将字段转换为DATETIME
类型,然后才能执行上述操作。此示例应适用于您的SQL Server:
SELECT CONVERT(VARCHAR(10), CAST('2010-04-14' AS DATETIME), 103) AS [DD/MM/YYYY]
如果出现此异常:
味精242,第16级,第3状态,第1行
将varchar数据类型转换为datetime数据类型导致值超出范围
然后您需要将日期字段更改为YYYY-MM-DD
格式,例如: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]
解决问题的另一种方法:
select substring(columnName, 9, 2) + '/' + substring(columnName, 6, 2) + '/' + substring(columnName, 1, 4)
如果在SqlServer之外显示该日期,更好的方法是将该日期检索为日期,并在显示之前将其转换为所需的字符串表示形式
如何做取决于您的情况。我仍然得到日期格式为2010-04-14。我需要它为2010年4月14日,正如您所说,我得到了例外。请告诉我如何将日期字段更改为YYYY-MM-DD格式。thanx@StuartBlackler示例不同于
YYYY-MM-DD
。日期列没有任何字符串与之关联的格式。SQL Server将日期存储为数值-您看到的只是日期的字符串表示形式。因此,要改变这一点,只需使用不同的格式表示该日期。使用CONVERT
将该日期转换为您选择的字符串格式(SQL Server支持的所有日期格式中的一种),您可以选择!对于您的情况,使用SELECT CONVERT(VARCHAR(20),GETDATE(),103)
或只使用SET DATEFORMAT MDY
即可执行无字符串操作这并不能解决问题,即更改分隔符和日期组件的顺序。
select replace(datetime,'-','/')