以下SQL语句设置特定列的日期:
DATEDUE=convert(varchar,GETDATE(),103 )
但是,它设置了当前日期,例如05/08/2015。我想做的是将它设置为相同的 dd / mm / yyyy 格式,但是将日期设置为15日,将月份设置为上个月,所以 05/08/2015 应该 15/07/2015 。
答案 0 :(得分:5)
select CONVERT(VARCHAR(10),
DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE())-1, 0) + 14
,103)
Result: 15/07/2015
由于DATEDUE
列存储日期,您应该使用sql server DATE
数据类型在该列中存储日期值。
答案 1 :(得分:0)
如果你决定只需要最近一个月的第15个月就可以使用它。
SELECT CONVERT(VARCHAR(10),
DATEADD(DAY,14,DATEADD(MONTH,DATEDIFF(MONTH,0,GETDATE()) -
(CASE WHEN DATEPART(DAY,GETDATE()) > 15 THEN 0 ELSE 1 END), 0)),
103)
05/08/2015
变为 15/07/2015
, 24/08/2015
变为 15/08/2015
而不是 15/07/2015