CONVERT(VARCHAR(11),Enrollment.[Enroll End],106)
我认为上面应该返回像'2016年1月12日'这样的日期,而是返回像'15 Oca 2016'这样的日期。有谁知道为什么会这样?我原本以为可能语言设置不正确,但事实并非如此。
https://msdn.microsoft.com/en-us/library/ms187928.aspx表示106
1这些样式值返回非确定性结果。包括所有(yy)(没有世纪)样式和(yyyy)(有世纪)样式的子集。
我不确定上面是否与它有关 - 虽然我不完全确定它们的意义是什么意思
感谢您的帮助!
答案 0 :(得分:2)
返回的值是非确定性的,因为它们依赖于用户连接的区域设置。换句话说,您可以从两台不同的计算机运行相同的精确代码并获得不同的结果 - 您无法仅根据参数确定结果。
确保将客户端计算机设置为英语区域设置。
答案 1 :(得分:0)
我希望这会有所帮助..
如果当地环境不同。始终使用dateformat
set dateformat dmy
declare @date datetime = '12-01-2016'
select CONVERT(VARCHAR(11),@date,106)