【发布时间】:2012-02-03 09:46:28
【问题描述】:
我正在尝试使用 Linq to SQL 根据日期从表中选择记录。不幸的是,日期被分成两个表 - Hours 表包含日期,而相关的 JobTime 表在两列中包含月份和年份。
我有以下疑问:
Dim qry = From h As Hour In ctx.Hours Where Convert.ToDateTime(h.day & "/" & h.JobTime.month & "/" & h.JobTime.year & " 00:00:00") > Convert.ToDateTime("01/01/2012 00:00:00")
这给了我错误“将表达式转换为数据类型日期时间的算术溢出错误。”
查看 SQL Server Profiler 中的 SQL 查询,我看到了:
exec sp_executesql N'SELECT [t0].[JobTimeID], [t0].[day], [t0].[hours]
FROM [dbo].[tbl_pm_hours] AS [t0]
INNER JOIN [dbo].[tbl_pm_jobtimes] AS [t1] ON [t1].[JobTimeID] = [t0].[JobTimeID]
WHERE (CONVERT(DateTime,(((((CONVERT(NVarChar,[t0].[day])) + @p0) + (CONVERT(NVarChar,COALESCE([t1].[month],NULL)))) + @p1) + (CONVERT(NVarChar,COALESCE([t1].[year],NULL)))) + @p2)) > @p3',N'@p0 nvarchar(4000),@p1 nvarchar(4000),@p2 nvarchar(4000),@p3 datetime',@p0=N'/',@p1=N'/',@p2=N' 00:00:00',@p3='2012-01-31 00:00:00'
我可以看到它没有传递正确搜索的日期,但我不确定如何更正它。
有人可以帮忙吗?
谢谢, 艾玛
【问题讨论】: