0

(抱歉英语不好)

嘿,我在尝试更新 Date 数据类型时遇到了问题。

这是我的 SQL 查询

UPDATE       Employees
SET                BirthDateEmp = '04/11/2012'
WHERE        (IdEmp = 1)

所以我设置 day = 4 ,month = 11 和 year 2012

但是当我检查我的表时,它会在日期和月份之间切换,所以现在是第 11 天和第 4 个月。

我如果尝试设置这个日期'13/10/2012'(天 - 13 个月 - 10 年 -2012 年)我得到了错误,因为它试图输入:day-10 month-13,并且没有第 13 个月所以我得到错误

为什么会这样?

4

4 回答 4

0

看起来您的 SQL 服务器需要美国格式的日期 (mm/dd/yyyy)。您需要让我们知道您使用的是什么数据库和操作系统。

于 2013-03-02T12:29:59.207 回答
0

您的应用程序和数据库上的本地化设置彼此不兼容。

您的应用程序中似乎有(并且想要)英国日期格式(DD/MM/YYYY),但您的数据库中有美国日期格式(MM/DD/YYYY)。

您可以将数据库更改为以中性格式存储日期,然后更新您的应用程序以获取本地日期并将它们转换为这种中性格式,然后再存储到数据库中并在显示它们时从中转换。

您还应该将日期存储在日期(或日期时间)列中,而不是作为字符串。

于 2013-03-02T12:30:04.467 回答
0

问题是您使用的日期格式不明确,并且服务器上的文化不是您所期望的。

理想情况下,您希望使用类型化参数,并且永远不要将日期作为字符串处理。

如果您必须使用字符串,我发现以下格式最成功:yyyy-MM-dd

于 2013-03-02T12:31:55.247 回答
-1

您可以通过代码更改日期数据类型的格式并检查查询

UPDATE       Employees
SET                BirthDateEmp = '11/04/2012'
WHERE        (IdEmp = 1)

这将更新您的表,因为日期数据类型的默认格式是 SQL 中的 (MM/dd/yyyy),因此请遵循此操作。

于 2013-03-02T12:31:52.853 回答