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相关的错误
从技术上讲,我用美国英语安装了SQL Server 2014,并尝试使用

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)