我是编程的初学者,我遇到了CAST
的问题。
这是我的问题:
DECLARE @adtdays INT
SELECT
@adtdays = CASE
WHEN DATEPART(MONTH, GETDATE()) > DATEPART(MONTH, CONVERT(DATETIME, Day1))
THEN DATEPART(DAY, (DATEADD(DAY, -1, CAST(CAST(DATEPART(MONTH, GETDATE()) AS VARCHAR) + '/1/' + CAST(DATEPART(year, Day1) AS VARCHAR) AS DATE))))
ELSE 0
END
FROM
ProgProdAlpidi
WHERE
ProductCode = 'PRODUCT CODE'
我收到以下错误
有人可以帮帮我吗?从字符串转换日期和/或时间时转换失败。
好抱歉我是新的,,,理想的结果应该是:
如果当前月份大于“Day1字段”的月份,那么 删除一天到当月,1,当前年份。 这将带给我上个月的最后一天......
这将是'4/30/2017'
第一行是columnHeader,第二行是我表的第一行...
ProductCode MY Vehicle Project Dest Line Day1 Day2 Day3
PRODUCT CODE MY VEHICLE PROJECT DEST. LIN 42826 42827 42828
但似乎我试图做的转换是错误的......
答案 0 :(得分:0)
数据库表中Day1
列的数据类型是什么?如果是INT
,您的查询应该有效。但是,如果它类似于NVARCHAR
或VARCHAR
,那么您将收到上述报告的错误。