我正面临一个问题
将数据类型nvarchar转换为datetime时出错
以col-sm-6
格式插入日期作为字符串文字。我在插入期间在SQL Server中使用此代码:
26/01/2017
答案 0 :(得分:3)
尝试CONVERT(DATETIME, @PaymentDate, 103)
104
是德国风格,它使用数字之间的句点,而不是斜杠。 103
是英国/法国风格。
答案 1 :(得分:2)
我注意到您的问题也标有c#
如果您将日期从c#传递给sql server,
不要将日期作为字符串传递。将它们作为DateTime传递。
.Net DateTime
maps directly到SQL Server的DateTime
这样,您就不必处理显示格式,因为c#和SQL Server都不会在DateTime
中存储显示格式。
如果您确实需要将字符串'26/01/2017'
转换为日期,则应使用103作为样式参数,如其他答案中已建议的那样。
答案 2 :(得分:1)
此示例运行没有任何问题:
Declare @PaymentDate nvarchar(40)
set @PaymentDate = '26/01/2017'
SELECT CONVERT(DATETIME,@PaymentDate,104)
<强>结果:强>
2017-01-26 00:00:00.000
答案 3 :(得分:0)
检查sqlserver中的dateformat,然后相应地进行转换。 dateformat的代码
SET DATEFORMAT mdy
答案 4 :(得分:0)
尝试这些代码,并确保日期值不为空且超过1970-1-1。
CONVERT(DATETIME,@PaymentDate,103)
或者
CONVERT(DATETIME,@PaymentDate,105)
答案 5 :(得分:0)
使用SelectedDate来保存数据并得到该错误 即。 cmd.Parameters.AddWithValue(“ EndDate”,EndDatep.DateInput.SelectedDate);
答案 6 :(得分:0)
我遇到的问题是日期格式正确但时间部分不正确,日期就像
<块引用>07/28/2021 00:00 PM
在 PM 中不可能有 00 小时,这就是为什么 DB 在保存日期/时间时不接受它们的原因。 所以我将日期转换为
<块引用>07/28/2021 00:00 AM
它被保存了。也许对任何人都有帮助。