如何用SQL中的标准日期替换日期

时间:2014-07-03 16:07:18

标签: sql-server-2008

确定,

这有点棘手,我试图用基于月份的标准日期替换SQL查询结果中的日期。

例如:

7月份的任何日期都会获得20140701 八月获得20140801

我可以使用案例陈述:

Case
     When Datepart(mm, TxnDate) = 1 and Datepart(yy, TxnDate) = 2014 then TxnDate = 20140101
etc...

但是,由于数据库可以追溯到5年,而且结果集涵盖了不同的时期,因此可能会很长。

非常感谢任何快速建议。

谢谢,

3 个答案:

答案 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]

希望这就是你要找的东西