运行两个简单的select语句:
SELECT GETDATE() SELECT LEFT(GETDATE(), 10)
返回值:
2015-10-30 14:19:56.697 Oct 30 201
我原本希望LEFT()给我2015-10-30,但事实并非如此。
LEFT()
2015-10-30
有人知道为什么吗?与数据类型GETDATE返回的样式有关吗?
GETDATE
谢谢!
GETDATE()返回一个datetime值。完成SELECT GETDATE()后, 应用程序 将获取日期时间值并弄清楚如何显示它。您正在使用的应用程序明智地选择了ISO标准格式。
GETDATE()
datetime
SELECT GETDATE()
当您执行时LEFT(GETDATE(), 数据库 需要执行从datetime到某个字符串值的隐式转换。为此,它使用其国际化设置。您所看到的是基于这些设置的。
LEFT(GETDATE()
故事的寓意:避免隐式转换。始终要明确自己在做什么,尤其是在诊断功能较差的SQL中。因此,CONVERT()针对您要执行的操作使用适当的格式。
CONVERT()