好吧,我有一个表,其列类型为日期,并且我将值插入到该列中
Concat(year(getdate()),'-','0',month(getdate()), '-', '01'),
它按预期工作,但现在抛出此错误
Conversion failed when converting date and/or time from character string.
当我检查时,convert函数将输出作为varbinary提供,还有其他方法可以实现吗?
我已经尝试过使用convert或cast,遇到同样的问题
cast(Concat(year(getdate()),'-','0',month(getdate()), '-', '01') as date)
答案 0 :(得分:0)
您需要本月的第一天,而无需将其转换为可能导致错误的字符串。
select cast(DATEADD(month, DATEDIFF(month, 0, getdate()), 0) as date)
在您的代码中,您会注意到输出给出2018-010-01
,而额外的0
将在最近三个月内发生。
要显示如何使用您的方法执行此操作,只需删除0。
select
cast(Concat( year(getdate()),
'-',
month(getdate()),
'-',
'01') as date)
答案 1 :(得分:0)
从您的查询中删除'0'
像这样使用
select cast(Concat(year(getdate()),'-',month(getdate()), '-', '01') as datetime)
答案 2 :(得分:0)
尝试一下:
SELECT DATEFROMPARTS(YEAR(getDate()), MONTH(getDate()) , 1)