【问题标题】:Sql pull prior day except on Mondays pull Friday thru SundaySql pull 前一天除了周一拉周五到周日
【发布时间】:2015-03-26 04:37:38
【问题描述】:

这是我的 MySql 代码,

BETWEEN DATE_SUB(CURDATE(), INTERVAL (IF(DAYNAME(CURDATE()) = 'Monday',3,1)) DAY) AND
        DATE_SUB(CURDATE(), INTERVAL (IF(DAYNAME(CURDATE()) = 'Monday',1,1)) DAY)

我知道如何在 Sql Server 2008 中无时间拉取前一天,但我无法将这行代码从 MySql 转换为 Sql。

【问题讨论】:

  • MySQL 转换为SQL? SQL 非常模棱两可 - 您想将其转换为 SQL 的什么特定风格?
  • 我们使用的是Sql server?我不知道除此之外,我只是被告知它是 SQL。
  • 您的问题并不完全清楚,但您需要类似于DateAdd(Day, Case When DatePart(WeekDay, GetDate()) = 2 Then -3 Else -1 End, GetDate())
  • 感谢您的帮助,这不起作用,我知道我们正在使用 Mircosoft Sql Server 2008 和 Navicat Sql Server。
  • 请解释你需要得到什么,不要谁是 MySQL conde。 SQL Server 专家只有清楚地理解问题才能给你答案。

标签: mysql sql sql-server-2008 date where-clause


【解决方案1】:

根据您提供的MySQL 代码,这应该可以满足您的需要:

Between Cast(DateAdd(Day, Case When DatePart(WeekDay, GetDate()) = 2 Then -3 Else -1 End, GetDate()) As Date)
And     Cast(DateAdd(Day, -1, GetDate()) As Date)

第二个If 语句让我感到困惑,因为无论结果如何,您总是使用 1 天。因此,为此我只是将其简化为始终使用昨天的日期。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-16
    • 2016-12-10
    • 1970-01-01
    • 1970-01-01
    • 2011-07-11
    • 1970-01-01
    • 2022-07-16
    • 2012-08-08
    相关资源
    最近更新 更多