最近在T-SQL INSERT INTO语句中使用DateTime时遇到了问题。在一台计算机上正常工作但在另一台计算机上可能无法正常工作,我想这与区域设置有关。
因此,如果我有一个DateTime变量,在SqlStatement字符串中使用它的安全方法是什么,无论在本地系统设置上它都能工作?
由于
答案 0 :(得分:9)
使用parameterized INSERT
查询。
最有可能的是,您的代码正在组装SQL命令字符串。这也会使您的代码容易受到SQL Injection的攻击。</ p>
答案 1 :(得分:0)
答案 2 :(得分:0)
您可以使用参数化命令/存储过程,其中您在存储中创建DateTime类型的参数,并在调用存储时从.net代码分配它(因此.NET和SQL将知道它们正在使用日期时间并将永远不要混淆/交换日期和月份,或者在插入命令之上包含特定命令,然后使用此模式格式化所有dataetime字符串,例如:
SET DATEFORMAT dmy;