【问题标题】:Most used date query [closed]最常用的日期查询[关闭]
【发布时间】:2020-12-20 11:42:35
【问题描述】:

我正在使用 SQL Server。如何仅从我的表中查询 2018 年 2 月的所有记录?我正在寻找最常用的日期查询。然后应该有我可以轻松更改此日期的查询。

【问题讨论】:

  • 到目前为止你尝试了什么?
  • 欢迎来到 Stackoverflow。我建议您阅读How to askHow to ask a good SQL question,以便您可以写出高质量的问题并让人们帮助您。在这种特殊情况下,请提供minimal reproducible example,即一小组样本数据、样本数据的预期结果、您对选项所做的研究以及您所做的尝试。

标签: sql sql-server datetime where-clause


【解决方案1】:

假设你有一个date 列或类似的:

select *
from mytable
where mydate >= '20180201' and mydate < '20180301'

【讨论】:

  • 非常感谢您的回答。那么如何使这种日期格式参数化呢?
【解决方案2】:

类似这样的:

SELECT (list of columns)
FROM dbo.YourTableHere
WHERE YourDateColumn >= '20180201' AND YourDateColumn < '20180301'

基本上只使用普通的 &gt;=&lt; 运算符,以及 ISO-8601 格式的日期字符串文字来获取从 2 月 1 日开始的任何内容,但 3 月之前2018 年 1 月 1 日。

这当然是假设 YourDateColumn 真的是 DATEDATETIME2(n) 数据类型 - 它真的应该是!

【讨论】:

  • 非常感谢您的回答。那么我怎样才能使这个日期格式参数化呢?
【解决方案3】:
SELECT *
FROM MYTABLE
WHERE MYDATECOLUMN LIKE '2018-02%'

你也可以使用 LIKE。

如果您的日期保存为 2018-02-01,上述查询将起作用。

如果您的日期保存为 20180201,则其他人的答案将起作用或使用 LIKE '201802%'

【讨论】:

  • LIKE in SQL Server 不起作用DATEDATETIME2(n) 列 - 这真的应该是!
  • @marc_s LIKE 确实DATETIME2 中工作我在我的环境中使用了很多。我认为它也可以在 DATETIMEDATE 中使用,所以如果不是,那是我的错误。
猜你喜欢
  • 1970-01-01
  • 2020-06-06
  • 2021-03-25
  • 2021-07-19
  • 2013-08-11
  • 1970-01-01
  • 2013-03-14
  • 1970-01-01
  • 2022-01-18
相关资源
最近更新 更多