DECLARE @DateMin AS date = DATEFROMPARTS(2019, 7, 19);
DECLARE @DateTimeMax AS datetime = EOMONTH(@DateMin)+1;错误信息:
2016年Msg,16级。 操作数类型冲突。日期与int不兼容。
错误发生在第二行。使用Server 2016。
发布于 2019-07-19 14:22:05
在Server中,可以将数字添加到datetime以添加天数,但不能添加到date。因此,如果坚持这个结构,您可以通过两种方式解决这个问题:
DECLARE @DateMin datetime = DATEFROMPARTS(2019, 7, 19);
-----------------^ change type to datetime
DECLARE @DateTimeMax datetime = DATEADD(DAY, 1, EOMONTH(@DateMin));或者:
DECLARE @DateMin date = DATEFROMPARTS(2019, 7, 19);
DECLARE @DateTimeMax datetime = CONVERT(datetime, DATEADD(DAY, 1, EOMONTH(@DateMin)));
--------------------------------^ add explicit conversion我确实认为dateadd(day, )是一个更好的解决方案,因为它的意图更加明确。
发布于 2019-07-19 14:02:14
错误告诉您问题所在,date和int是不兼容的。使用DATEADD
DECLARE @DateMin AS date = DATEFROMPARTS(2019, 7, 19);
DECLARE @DateTimeMax AS datetime = DATEADD(DAY, 1, EOMONTH(@DateMin));https://stackoverflow.com/questions/57114085
复制相似问题