为了账号安全,请及时绑定邮箱和手机立即绑定

选择日期范围,最近 30 天

选择日期范围,最近 30 天

胡说叔叔 2024-01-16 15:21:47
我试图仅返回最近 30 天的查询,但没有成功。我尝试将其简化为仅拉取任何内容 > 12/31/2019 仍然没有成功。sql_string = ('''SELECT ViewListInvoices.Department,             ViewListInvoices.[Invoice Date]            FROM ViewListInvoices            WHERE (((ViewListInvoices.[Invoice Date] > (12/31/2019))            ))''')    sql_result = query(sql_string)    shop_average_inv_last_month = sorted(sql_result)    sql_result =[]我已经尝试过> ('12/31/2019')或者('#12/31/2019')还有很多其他的。在此先感谢您的帮助
查看完整描述

3 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

对日期常量使用正确的语法:

ViewListInvoices.[Invoice Date] > '20191231'


查看完整回答
反对 回复 2024-01-16
?
慕的地10843

TA贡献1785条经验 获得超8个赞

使用该DATEFROMPARTS函数创建日期文字

我喜欢使用DATEFROMPARTS函数在 TSQL 中创建日期文字。这确实需要 SQL Server 2012 或更高版本(这对大多数人来说应该不是问题)。

虽然输入此函数可能需要一两秒的时间,但一旦输入,我发现代码更具可读性,而且我不必担心语言和日期格式设置。

您的作业应如下所示(我删除了很多括号):

sql_string = ('''SELECT ViewListInvoices.Department, 
            ViewListInvoices.[Invoice Date]
            FROM ViewListInvoices
            WHERE ViewListInvoices.[Invoice Date] > DATEFROMPARTS(2019,12,31) 
            ''')

有些人喜欢依赖字符串的隐式转换,就像 Gordon 演示的那样(在 TSQL 中很常见)。

我也看到有些人使用CAST函数(尤其是 2012 年之前的 SQL Sever)。

sql_string = ('''SELECT ViewListInvoices.Department, 
            ViewListInvoices.[Invoice Date]
            FROM ViewListInvoices
            WHERE ViewListInvoices.[Invoice Date] >  CAST(''20191231'' AS DATE)''')



查看完整回答
反对 回复 2024-01-16
?
catspeake

TA贡献1111条经验 获得超0个赞

假设您想要从上次发票日期算起的最后 30 天,请使用 max 子查询和 dateadd


 SELECT ViewListInvoices.Department, 

        ViewListInvoices.[Invoice Date]

        FROM ViewListInvoices

        where ViewListInvoices.[Invoice Date]>=

        DateAdd(d,-30,

        (

        SELECT max(ViewListInvoices.[Invoice Date]) max_date

        FROM ViewListInvoices invoice2

        ))

或者,如果您希望所有大于 12/31/2019 的日期使用一个字符串,它将自动转换为强制转换('12/31/2019' as date)


  SELECT ViewListInvoices.Department, 

        ViewListInvoices.[Invoice Date]

        FROM ViewListInvoices

        where ViewListInvoices.[Invoice Date]>= '12/31/2019' 


查看完整回答
反对 回复 2024-01-16
  • 3 回答
  • 0 关注
  • 104 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信