gpt4 book ai didi

sql-server - 区域日期格式和数据库日期格式的不同日期格式的 SQL Server 错误

转载 作者:行者123 更新时间:2023-12-03 15:24:46 25 4
gpt4 key购买 nike

我的区域日期设置设置为

yyyymmdd

现在,我的 SQL Server 的默认 DateTime 设置为

mm/dd/yyyy

我的数据库列的数据类型为 DateTime,它包含的值与数据库的格式相同。

我的代码是用Delphi7编写的。

当从数据库中获取记录时,它会触发如下所示的查询:

select * 
from EMPLOYEE
where JOINING_DATE > '08292017'

在上述查询中,预计日期为 08/29/201708-29-2017

在Delphi 7中,我使用GetLocaleChar方法从区域设置中获取分隔符的值;以下是此操作的代码:

GetLocaleChar(DefaultLCID, LOCALE_SDATE, '/')

哪里

DefaultLCID := GetThreadLocale;

另一个问题:在 SQL Server 中,无论数据库列中使用什么分隔符,我们使用哪个分隔符都重要吗?

最佳答案

My database field has datatype as - DateTime and the values it contains is in the same format of database.

SQL Server 中的日期时间值采用二进制格式。日期时间值的字符串值 mm/dd/yyyy 完全由应用程序表示层控制。

And when it come to fetcch record from the database, it fires a query like given below: select * from EMPLOYEE where JOINING_DATE > '08292017'

我建议您简单地参数化查询,而不是传递日期文字字符串。这将避免日期格式字符串问题,并提供性能和安全性等其他好处。

如果必须将日期或日期时间文字传递给 SQL Server,请使用不分隔的 YYYYMMDD 格式,以便无论 SQL session DATEFORMAT 设置如何,都能正确解释它。

关于sql-server - 区域日期格式和数据库日期格式的不同日期格式的 SQL Server 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45957556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com