You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SSRS动态日期实现:获取上周患者预约记录的SQL查询问题

解决动态日期获取上周预约数据的方案

你遇到的TODAY/CURRENT_DATE报错,核心原因是不同数据库的日期函数差异,以下是针对常见数据库的适配写法,同时明确两种“上周数据”的范围逻辑:

1. 若使用SQL Server(Excel通过ODBC连接场景)

方案A:获取完整上周周期(周一至周日,以周一为周起始)

SELECT
     PM.vwApptDetail.Patient_Last_Name
     ,PM.vwApptDetail.Patient_First_Name
     ,PM.vwApptDetail.Patient_DOB
     ,PM.vwApptDetail.Appointment_DateTime
     ,PM.vwApptDetail.Appt_Type_Desc
     ,PM.vwApptDetail.Resource_Desc
     ,PM.vwApptDetail.Status
FROM
   PM.vwApptDetail
WHERE
   PM.vwApptDetail.Appointment_DateTime >= DATEADD(week, DATEDIFF(week, 0, GETDATE()) - 1, 0)
   AND PM.vwApptDetail.Appointment_DateTime < DATEADD(week, DATEDIFF(week, 0, GETDATE()), 0)

方案B:单纯获取当前日期前7天的数据

SELECT
     PM.vwApptDetail.Patient_Last_Name
     ,PM.vwApptDetail.Patient_First_Name
     ,PM.vwApptDetail.Patient_DOB
     ,PM.vwApptDetail.Appointment_DateTime
     ,PM.vwApptDetail.Appt_Type_Desc
     ,PM.vwApptDetail.Resource_Desc
     ,PM.vwApptDetail.Status
FROM
   PM.vwApptDetail
WHERE
   PM.vwApptDetail.Appointment_DateTime >= DATEADD(day, -7, GETDATE())

2. 若使用MySQL/MariaDB

方案A:完整上周周期(周一至周日)

SELECT
     PM.vwApptDetail.Patient_Last_Name
     ,PM.vwApptDetail.Patient_First_Name
     ,PM.vwApptDetail.Patient_DOB
     ,PM.vwApptDetail.Appointment_DateTime
     ,PM.vwApptDetail.Appt_Type_Desc
     ,PM.vwApptDetail.Resource_Desc
     ,PM.vwApptDetail.Status
FROM
   PM.vwApptDetail
WHERE
   Appointment_DateTime >= DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) + 7 DAY)
   AND Appointment_DateTime < DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY)

方案B:当前日期前7天数据

SELECT
     PM.vwApptDetail.Patient_Last_Name
     ,PM.vwApptDetail.Patient_First_Name
     ,PM.vwApptDetail.Patient_DOB
     ,PM.vwApptDetail.Appointment_DateTime
     ,PM.vwApptDetail.Appt_Type_Desc
     ,PM.vwApptDetail.Resource_Desc
     ,PM.vwApptDetail.Status
FROM
   PM.vwApptDetail
WHERE
   Appointment_DateTime >= DATE_SUB(NOW(), INTERVAL 7 DAY)

3. 若使用Oracle

方案A:完整上周周期(周一至周日)

SELECT
     PM.vwApptDetail.Patient_Last_Name
     ,PM.vwApptDetail.Patient_First_Name
     ,PM.vwApptDetail.Patient_DOB
     ,PM.vwApptDetail.Appointment_DateTime
     ,PM.vwApptDetail.Appt_Type_Desc
     ,PM.vwApptDetail.Resource_Desc
     ,PM.vwApptDetail.Status
FROM
   PM.vwApptDetail
WHERE
   Appointment_DateTime >= TRUNC(SYSDATE, 'IW') - 7
   AND Appointment_DateTime < TRUNC(SYSDATE, 'IW')

方案B:当前日期前7天数据

SELECT
     PM.vwApptDetail.Patient_Last_Name
     ,PM.vwApptDetail.Patient_First_Name
     ,PM.vwApptDetail.Patient_DOB
     ,PM.vwApptDetail.Appointment_DateTime
     ,PM.vwApptDetail.Appt_Type_Desc
     ,PM.vwApptDetail.Resource_Desc
     ,PM.vwApptDetail.Status
FROM
   PM.vwApptDetail
WHERE
   Appointment_DateTime >= SYSDATE - 7

额外提示

如果是在Excel内置的SQL查询功能中操作,务必使用对应数据库的原生日期函数,不要混用Excel公式,避免语法冲突。

内容的提问来源于stack exchange,提问作者Soledad B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 21:01:22