运行两个简单的选择语句:
SELECT GETDATE()
SELECT LEFT(GETDATE(), 10)
Returns:
2015-10-30 14:19:56.697
Oct 30 201
我正期待着LEFT()
给我2015-10-30
,但事实并非如此。
有谁知道为什么?与数据类型的风格有关吗GETDATE
回报?
Thanks!
GETDATE()
返回一个datetime
价值。当你这样做时SELECT GETDATE()
,那么应用正在获取日期时间值并弄清楚如何显示它。您正在使用的应用程序明智地选择了 ISO 标准格式。
当你这样做时LEFT(GETDATE()
,那么database需要进行隐式转换datetime
到某个字符串值。为此,它使用其国际化设置。您所看到的内容基于这些设置。
这个故事的寓意是:避免隐式转换。始终明确您正在做什么,特别是在诊断能力相当差的 SQL 中。所以,使用CONVERT()
具有适合您想要执行的操作的格式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)