需要日期时间插入转换帮助
本文关键字:转换 帮助 插入 时间 日期 | 更新日期: 2023-09-27 18:35:10
我需要插入格式为 dd/mm/yyyy 的日期,但不幸的是,目前我的 sql 从嵌入式插入中抛出以下错误
将 varchar 数据类型转换为日期时间数据类型会导致值超出范围。该语句已终止。
我相信这是因为数据库正在寻找错误的日期格式。任何人都可以指出我如何让数据库查找 dd/mm/yyyy 的解决方案。我想避免转换代码中的每个日期,因为同时完成数千次插入。谢谢
我需要插入格式为 dd/mm/yyyy 的日期
不要考虑特定的格式。日期和时间本身没有格式。确保您的数据库字段是与日期/时间相关的类型,然后使用指定DateTime
或DateTimeOffset
值的参数化 SQL。这样,您的代码根本不处理字符串。
该错误涉及从varchar
转换的事实表明您正在以字符串形式提供数据。你不应该那样做。即使您的输入格式是文本,您也应该将其转换为其自然数据类型(例如 DateTimeOffset
) 尽早 - 这将使在整个代码库中处理数据变得更加容易。
日期文本应始终采用安全、明确且与语言无关的格式。所以你的嵌入式SQL应该是:
INSERT dbo.table(column) VALUES('YYYYMMDD');
您可以使用 ToString()
在 C# 中以这种方式轻松格式化字符串。
但更好的是,您应该使用参数化语句,传递正确的日期时间参数,并且根本不担心字符串格式。
您可以使用转换并指定 103 作为样式。
convert(datetime, YourColumn, 103)
或者您可以设置日期格式。
set dateformat dmy