查询根据天数返回数据

时间:2014-04-16 11:42:30

标签: sql-server tsql sql-server-2012

我有一个非常简单的数据集,我试图弄清楚如何将数据集分解为日增量。

Order_id [int], date_created [dateTime]

我们正在使用SQL Server 2012

虽然查询很容易获取数据

SELECT order_id, date_created 
FROM orders

我一直在返回这些数据,然后使用coldfusion函数对其进行操作,以将返回数据组织到单独的数组中,以便按日期计算事务。

我尝试做的是根据date_created列将数据作为过去7天的数据集返回。

所以结果集是

Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday

包含所有返回的交易。

我的SQL技能非常基础,我一直在网上寻找可能的解决方案,因此我可以将其与应用程序分开并将其保存在查询中。

2 个答案:

答案 0 :(得分:0)

您可以使用日期名称来执行此操作。

   DECLARE @date_created datetime = GETDATE()

   SELECT datename(dw,@date_created)
   SELECT datename(dw,@date_created - 1)
   SELECT datename(dw,@date_created - 2)
   SELECT datename(dw,@date_created - 3)
   SELECT datename(dw,@date_created - 4)
   SELECT datename(dw,@date_created - 5)
   SELECT datename(dw,@date_created - 6)

将@date_created替换为您的变量。

答案 1 :(得分:0)

DECLARE @yourDate DATETIME = GETDATE()
SELECT DATENAME(WEEKDAY, @yourDate) -- Sunday, Monday, Tuesday, etc., etc
SELECT DATENAME(M, @yourDate) -- January, February, etc., etc.

以下示例返回指定日期的日期部分。

SELECT DATENAME(datepart,' 2007-10-30 12:15:32.1234567 +05:10')

datepart |返回值

年,yyyy,yy | 2007

quarter,qq,q | 4

月,mm,m |十月

dayofyear,dy,y | 303

day,dd,d | 30

周,周,周 | 44

工作日,dw |星期二

小时,...... | 12

分钟,n | 15

第二,ss,s | 32

毫秒,ms | 123

微秒,mcs | 123456

纳秒,ns | 123456700

TZoffset,tz | 310


请访问Microsoft TechNet了解更多相关信息。