立刃 2013-09-23 03:04 采纳率: 0%
浏览 1193

mssql根据datetime判断该时间是否为本周时间

本周时间的概念是上周六到本周五为一周
比如记录
id name bgTime
1 "test" 2013-08-07 14:12:30
2 "good" 2013-09-27 04:35:30
3 "suine" 2013-09-23 11:12:30
4 "ne" 2013-09-21 11:12:30
5 "sne" 2013-09-22 11:12:30
6 "unine" 2013-09-19 11:12:30
7 "shy" 2012-11-07 14:12:30
now.bgTime=2013-09-23 11:12:30
selsect id,name from a.table where bgTime in {本周}
理想结果:

2 "good" 2013-09-27 04:35:30
3 "suine" 2013-09-23 11:12:30
4 "ne" 2013-09-21 11:12:30
5 "sne" 2013-09-22 11:12:30

  • 写回答

1条回答 默认 最新

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-02-20 11:07
    关注

    该回答引用ChatGPT

    要根据 MSSQL 中的 datetime 判断该时间是否为本周时间,可以使用以下步骤:


    确定当前日期所在周的起始日期和结束日期。可以使用 DATEPART() 函数获取当前日期是本周的第几天(1 表示星期天,2 表示星期一,以此类推),然后根据这个信息计算出本周的起始日期和结束日期。假设我们的一周是从周六开始算的,则本周的起始日期为本周日减去六天,结束日期为本周六。

    DECLARE @now DATETIME
    SET @now = '2013-09-23 11:12:30'
    
    DECLARE @startOfWeek DATETIME
    SET @startOfWeek = DATEADD(DAY, -DATEPART(WEEKDAY, @now) + 1, @now)
    
    DECLARE @endOfWeek DATETIME
    SET @endOfWeek = DATEADD(DAY, 7 - DATEPART(WEEKDAY, @now), @now)
    

    使用起始日期和结束日期来筛选符合条件的记录。可以使用 BETWEEN 运算符来判断某个日期是否在指定的区间内。

    SELECT id, name, bgTime
    FROM a.table
    WHERE bgTime BETWEEN DATEADD(DAY, -6, @startOfWeek) AND @endOfWeek
    

    完整的 SQL 查询语句如下:

    DECLARE @now DATETIME
    SET @now = '2013-09-23 11:12:30'
    
    DECLARE @startOfWeek DATETIME
    SET @startOfWeek = DATEADD(DAY, -DATEPART(WEEKDAY, @now) + 1, @now)
    
    DECLARE @endOfWeek DATETIME
    SET @endOfWeek = DATEADD(DAY, 7 - DATEPART(WEEKDAY, @now), @now)
    
    SELECT id, name, bgTime
    FROM a.table
    WHERE bgTime BETWEEN DATEADD(DAY, -6, @startOfWeek) AND @endOfWeek
    

    该查询语句会返回所有 bgTime 在本周时间范围内的记录,即 id 为 2、3、4、5 的记录。注意,这里假设一周的起始日是周六,如果起始日不同,需要相应地调整查询语句中的计算逻辑。

    评论

报告相同问题?

悬赏问题

  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 Arcgis相交分析无法绘制一个或多个图形