通过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所以我得到了错误

通过c#和SQL更新日期数据类型时出现错误

看起来您的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),所以请遵循此

相关文章: