Sql server SQL Server 2014转换函数出现故障
出于某种原因,以下查询返回相同的结果,即使它们不应该返回相同的结果Sql server SQL Server 2014转换函数出现故障,sql-server,function,date,datetime,sql-server-2014,Sql Server,Function,Date,Datetime,Sql Server 2014,出于某种原因,以下查询返回相同的结果,即使它们不应该返回相同的结果 SELECT CONVERT(DATE, GETDATE(),101) SELECT CONVERT(DATE, GETDATE(),102) SELECT CONVERT(DATE, GETDATE(),103) SELECT CONVERT(DATE, GETDATE(),104) SELECT CONVERT(DATE, GETDATE(),105)-- Ad Infinitum (Tested up to 140) 结
SELECT CONVERT(DATE, GETDATE(),101)
SELECT CONVERT(DATE, GETDATE(),102)
SELECT CONVERT(DATE, GETDATE(),103)
SELECT CONVERT(DATE, GETDATE(),104)
SELECT CONVERT(DATE, GETDATE(),105)-- Ad Infinitum (Tested up to 140)
结果
2014-10-07
以防万一,今天的日期是2014年10月7日
- 据 应该只有131种风格,是不是我没有得到132-140相关的错误
set dateformat dmy
但我不知道这是否有什么不同
我是否搞砸了我的安装,我是否应该修复它,卸载并重新安装,格式化我的机器,还是与之无关
发布的第一个问题,我相信我遵守了规则,正如我所理解的,如果我犯了错误,请告诉我
编辑:
具有相同的结果。只有当输出类型为文本类型时,样式才起作用,即,
varchar
或nvarchar
。您试图做的是将datetime转换为date(结果不取决于样式),然后允许客户端应用程序随意显示它
然而,在下面的示例中,差异是显而易见的:
select convert(varchar, cast(getdate() as date), 101);
select convert(varchar, cast(getdate() as date), 102);
select convert(varchar, cast(getdate() as date), 103);
select convert(varchar, cast(getdate() as date), 104);
您需要在CONVERT函数中使用VARCHAR而不是DATE。如下图所示:
SELECT CONVERT(varchar, GETDATE(),101)
SELECT CONVERT(varchar, GETDATE(),102)
SELECT CONVERT(varchar, GETDATE(),103)
SELECT CONVERT(varchar, GETDATE(),104)
SELECT CONVERT(varchar, GETDATE(),105)
此外,请查看以下链接以获取相同的信息:
好的-但是你没有说你想要什么-你想要什么输出??您看过SQL Server 2014的新功能了吗?我猜您误解了日期(和日期时间)是如何存储在SQL Server(以及几乎所有其他编程语言)中的-它们没有附加某种格式信息-它们只是日期信息。您看到的字符串是当您要求工具(如ManagementStudio)向您显示日期信息时发生的情况。但请不要混淆management studio正在应用的字符串格式与存储在
日期列或变量中的实际数据。如果我不够清楚,我很抱歉,我的目标是得到除我得到的结果以外的任何结果,感谢您指出我的错误。
SELECT CONVERT(varchar, GETDATE(),101)
SELECT CONVERT(varchar, GETDATE(),102)
SELECT CONVERT(varchar, GETDATE(),103)
SELECT CONVERT(varchar, GETDATE(),104)
SELECT CONVERT(varchar, GETDATE(),105)