我试图显示SQL报告的开始和结束时间。我总是希望显示上个月的时间段:
开始时间:2014年8月1日00:00:00
结束时间:2014年9月1日00:00:00
如果报告在10月份运行,则会提供Sept1-Oct1
。不确定如何将其显示为Datetime
变量?
答案 0 :(得分:0)
如果我误解了,我道歉,但这是你在找什么?
SELECT CAST(DATEADD(MONTH,-1,[date]) AS VARCHAR(12)) + '-' + CAST([date] AS VARCHAR(12)) FROM table
如果您要在表格中插入一个SMALLDATETIME,例如
'2014-09-23 10:28:00'
然后将产生的是:
'2014年8月23日 - 2014年第23期'
答案 1 :(得分:0)
DATE_SUB(Date,INTERVAL 1 MONTH) AS PastMonth
会在日期前一个月显示
答案 2 :(得分:0)
采用DATETIME
格式,即
SELECT
DATEADD(month, DATEDIFF(month, 0, GETDATE())-1, 0) AS StartTime,
DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0) AS EndTime
如果你想玩字符格式,你可以做很多事情,比如
SELECT
DATENAME(MONTH,StartTime) + ' ' + CAST(YEAR(StartTime) AS VARCHAR(4)) + ' - ' + DATENAME(MONTH,EndTime) + ' ' + CAST(YEAR(EndTime) AS VARCHAR(4)),
LEFT(DATENAME(MONTH,StartTime),3) + ' ' + CAST(YEAR(StartTime) AS VARCHAR(4)) + ' - ' + LEFT(DATENAME(MONTH,EndTime),3) + ' ' + CAST(YEAR(EndTime) AS VARCHAR(4))
FROM
(
SELECT
DATEADD(month, DATEDIFF(month, 0, GETDATE())-1, 0) AS StartTime,
DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0) AS EndTime
) dt