【发布时间】:2017-08-30 10:07:32
【问题描述】:
我的区域日期设置设置为
yyyymmdd
现在,我的 SQL Server 的默认 DateTime 设置为
mm/dd/yyyy
我的数据库列的数据类型为DateTime,它包含的值与数据库的格式相同。
我的代码是用 Delphi7 编写的。
当从数据库中获取记录时,它会触发如下所示的查询:
select *
from EMPLOYEE
where JOINING_DATE > '08292017'
在上述查询中,预计日期为08/29/2017 或08-29-2017。
在 Delphi 7 中,我使用GetLocaleChar 方法从区域设置中获取分隔符的值;下面是这个的代码:
GetLocaleChar(DefaultLCID, LOCALE_SDATE, '/')
在哪里
DefaultLCID := GetThreadLocale;
另一个问题:在 SQL Server 中,无论数据库列中使用何种分隔符,我们使用哪个分隔符是否重要?
【问题讨论】:
-
使用参数化查询应该没问题。
-
除了你应该参数化你的查询之外,这可能是一个有趣的阅读karaszi.com/SQLServer/info_datetime.asp#DtFormatsInput
标签: sql-server date delphi datetime delphi-7