强制使用日期格式,而不考虑区域性
本文关键字:不考虑 区域性 格式 日期 | 更新日期: 2023-09-27 17:56:47
我对某些区域性(特别是西班牙语)有问题,导致日期字符串ToShortDateString()显示为dd/mm/yyyy
where END_DATE between '" + asOfDate.AddDays(-30).ToShortDateString() + "' and '" +
这会导致 SQL 服务器错误,因为我们得到不正确的日期文本字符串,如下所示:
where END_DATE between '17/05/2015' and '16/06/2015'
在这些情况下,强制日期格式为 mm/dd/yyyy 的最佳方法是什么,我正在构建 SQL 语句?
答案是,如果您要使用任何格式,请确保它是 ISO 类型格式,例如 yyyy-MM-dd
.
where END_DATE between '" + asOfDate.AddDays(-30).ToString("yyyy-MM-dd") + "' and
但是,更重要的一点是使用参数化查询,而不是字符串连接。执行此操作时,日期就是日期,格式无关紧要。
您可以使用:
asOfDate.AddDays(-30).ToString("MM/dd/yyyy", System.Globalization.CultureInfo.InvariantCulture)
(注意大写MM)