我遇到某些文化问题(特别是西班牙文),导致日期字符串ToShortDateString()以dd / mm / yyyy进入
where END_DATE between '17/05/2015' and '16/06/2015'
这会导致SQL服务器错误,因为我们会收到错误的日期文字字符串,例如:
{{1}}
在构建SQL语句的情况下,强制日期格式为mm / dd / yyyy的最佳方法是什么?
答案 0 :(得分:2)
答案是,如果您要使用任何格式,请确保其类型为ISO yyyy-MM-dd
。
where END_DATE between '" + asOfDate.AddDays(-30).ToString("yyyy-MM-dd") + "' and
然而,更重要的一点是使用参数化查询,而不是字符串连接。执行此操作时,日期是日期,日期和格式无关。
答案 1 :(得分:0)
您可以使用:
asOfDate.AddDays(-30).ToString("MM/dd/yyyy", System.Globalization.CultureInfo.InvariantCulture)
(注意大写的MM)