通过c#和SQL更新日期数据类型时出现错误
本文关键字:错误 数据类型 日期 SQL 更新 通过 | 更新日期: 2023-09-27 18:01:46
(不好意思英文不好)
嘿,当我试图更新日期数据类型时,我遇到了问题。
这是我的SQL查询
UPDATE Employees
SET BirthDateEmp = '04/11/2012'
WHERE (IdEmp = 1)
所以我设置日= 4月= 11年2012
但是当我检查我的表时,它在日期和月份之间切换,所以现在是第11天和第4个月。
和我如果尝试设置这个日期'13/10/2012'(日- 13个月- 10年-2012)我得到了错误,因为它试图输入:day-10 month-13,而不是month 13所以我得到了错误
看起来您的SQL服务器正在等待美国格式日期(mm/dd/yyyy)。您需要让我们知道您正在使用的数据库和操作系统
问题是您使用的日期格式是模糊的,并且服务器上的文化不是您所期望的。
理想情况下,您希望使用类型化参数,而不要将日期作为字符串处理。
如果你必须使用字符串,我发现以下格式是最成功的:yyyy-MM-dd
您的应用程序和数据库的本地化设置彼此不兼容。
您的应用程序中似乎有(并且想要)英国日期格式(DD/MM/YYYY),但数据库中有美国日期格式(MM/DD/YYYY)。
您可以更改数据库以中性格式存储日期,然后更新应用程序以获取本地日期,并在将其存储到数据库之前将其转换为这种中性格式,并在显示它们时将其转换为中性格式。
您还应该将日期存储在Date(或DateTime)列中,而不是作为字符串。
您可以通过代码更改Date数据类型的格式并检查查询
UPDATE Employees
SET BirthDateEmp = '11/04/2012'
WHERE (IdEmp = 1)
将更新您的表,因为SQL中日期数据类型的默认格式是(MM/dd/yyyy),所以请遵循此