sql-server - “从字符串转换日期和/或时间时转换失败。” 错误
问题描述
我有以下查询:
DECLARE @Month int
DECLARE @Year int
set @Month = 2
set @Year = 2004
Declare @MonthStartDate datetime
declare @MonthEndDate datetime
set @MonthStartDate = 'select DATEADD(month,@Month-1,DATEADD(year,@Year-1900,0))'
set @MonthEndDate = 'select DATEADD(day,-1,DATEADD(month,@Month,DATEADD(year,@Year-1900,0)))'
返回 @MonthStartDate , @MonthEndDate
但它返回:
“从字符串转换日期和/或时间时转换失败。”
这里有什么问题?
解决方案
您应该使用 DateTime 表达式而不是字符串文字。只需删除引号:
DECLARE @Month int
DECLARE @Year int
set @Month = 2
set @Year = 2004
Declare @MonthStartDate datetime
declare @MonthEndDate datetime
set @MonthStartDate = DATEADD(month,@Month-1,DATEADD(year,@Year-1900,0))
set @MonthEndDate = DATEADD(day,-1,DATEADD(month,@Month,DATEADD(year,@Year-1900,0)))
推荐阅读
- swift - let 语句中的条件表达式
- mongodb - MongoDB 3.4.2 因校验和错误而崩溃,校验和为 0x20202020(四个空格),十进制为 538976288
- node.js - 从签名 URL 创建的图像下载 URL 仅在特定时间有效?
- javascript - 如何在 X 秒内执行命令?
- grails - 首次使用 Grails 包装器时必须连接到 Internet
- r - 在R中的行中添加多列计数频率
- vb.net - 如果选中任何复选框,则将启用某些文本框
- asp.net - 如何使用 SDK 在单独的 ASP.NET 端点中订阅 Microsoft Graph 更改通知
- url - 如何通过 URL 链接在 Django 中导航 State-District-taluk-village
- python - modulenotfounderror:python 烧瓶上没有名为“sklearn.linear_model.logistic”的模块