【问题标题】:How to select a date and ignor the time如何选择日期并忽略时间
【发布时间】:2016-03-15 19:45:53
【问题描述】:

我创建了一个 SQL 语句,我想使用日期但没有时间。

我的选择是:

SELECT DATEPART(dw, [Order].PerformDate)

我的分组依据是:

GROUP BY [Order].PerformDate

现在我怎么能忽略时间?

【问题讨论】:

  • 见mysql date()函数
  • 我不认为datepart是一个MySQL函数。你确定你用的是datapart的MySQL吗?
  • 您使用的是哪个数据库?
  • 看来 OP 使用的是 sql server ,如果我错了,请纠正我..

标签: mysql sql select group-by


【解决方案1】:

另一种方法:

select date_format(`order`.PerformDate, '%Y%m%d')
...
group by 1

【讨论】:

    【解决方案2】:

    GROUP BY 说“我希望每 ____ 个结果行”。在您的情况下,每个 PerformDate 一行。如果 PerformDate 是一个日期时间,但您只想每个日期有一个结果行而没有时间,那么您必须提取日期部分:

    group by cast(performdate as date)
    

    您还想用datepart(dw, performdate) 显示工作日,但这不再可能,因为 PerformDate 不再可用。只有它的日期部分是。所以:

    select datepart(dw, cast(performdate as date))
    from ...
    group by cast(performdate as date);
    

    【讨论】:

      【解决方案3】:

      你可以使用SQL的CONVERT函数

      select datepart(dw, CONVERT(DATE,[Order].PerformDate)) 
      GROUP BY CONVERT(DATE,[Order].PerformDate)
      

      【讨论】:

        【解决方案4】:

        将日期时间值转换为日期:

        select cast(`Order`.PerformDate as date) as PerformDate
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-08-27
          • 2017-12-07
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多