强制使用日期格式,而不考虑区域性

本文关键字:不考虑 区域性 格式 日期 | 更新日期: 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)