确定,
这有点棘手,我试图用基于月份的标准日期替换SQL查询结果中的日期。
例如:
7月份的任何日期都会获得20140701 八月获得20140801
我可以使用案例陈述:
Case
When Datepart(mm, TxnDate) = 1 and Datepart(yy, TxnDate) = 2014 then TxnDate = 20140101
etc...
但是,由于数据库可以追溯到5年,而且结果集涵盖了不同的时期,因此可能会很长。
非常感谢任何快速建议。
谢谢,
答案 0 :(得分:1)
declare @mydate datetime
select @mydate = GETDATE()
select cast(datepart(yy,@mydate) as varchar(4)) + RIGHT('0' + RTRIM(MONTH(@mydate)), 2) + '01'
select @mydate = GETDATE() - 10
select cast(datepart(yy,@mydate) as varchar(4)) + RIGHT('0' + RTRIM(MONTH(@mydate)), 2) + '01'
应打印 20140701 和 20140601
答案 1 :(得分:0)
如果您只是想将每个TxnDate设置为其当月的第一天,您可以这样做:
TxnDate = DATEADD(month, DATEDIFF(month, 0, TxnDate), 0)
如果您的要求比这更复杂,您需要解释。
答案 2 :(得分:0)
尝试类似这样的事情
SELECT REPLACE (CONVERT(VARCHAR(8), TxnDate, 112),SUBSTRING(CONVERT(VARCHAR(8), TxnDate, 112),7,8),'01') AS [YYYYMMDD]
希望这就是你要找的东西