我正在使用小巧的CROD操作。
我正在尝试使用DataTime字段向表中输入新行。
我创建了以下类:
//Properties
public int Id { get; set; }
public string Title { get; set; }
public string Message { get; set; }
public int UserID { get; set; }
public DateTime CreationDate { get; set; }
public DateTime UpdateDate { get; set; }
public DateTime ActiveStartDate { get; set; }
public DateTime ExpirationDate { get; set; }
现在,insert语句如下:
public static string InsertNewMessage
=> @"INSERT INTO Messages
(Title,[Message],UserID,CreationDate,UpdateDate,ActiveStartDate,
ExpirationDate)
VALUES (N'@Title',N'@Message',@UserID,CAST('@CreationDate' as
DATETIME),CAST('@UpdateDate' as DATETIME),
CAST('@ActiveStartDate' as DATETIME)
,CAST('@ExpirationDate' as DATETIME))
SELECT CAST(SCOPE_IDENTITY() as int)";
int returnId = _db.Query<int>(QueriesRepository.InsertNewMessage,
_message).SingleOrDefault();
现在我做错了什么 - 我已经在网上搜索以下错误的解决方案 - 没有运气 我知道问题是DateTime对象的格式化,但我看到Dapper应该支持它。
Conversion failed when converting date and/or time from character string
答案 0 :(得分:1)
我认为这是一个很晚的回应。但是无论如何我昨天都遇到了同样的问题,所以我将解决方案放在这里。您无需在SQL查询中直接CAST datetime。在我的情况下,datetime值超出范围,基本上是01-01-0001 00:00:00,所以导致了错误。确保您传递正确的日期时间值。希望这会有所帮助!