【问题标题】:Get the data between two dates in sql获取sql中两个日期之间的数据
【发布时间】:2017-06-02 02:30:46
【问题描述】:

我必须从两个日期之间的表中获取数据。

该表没有日期格式列,因为它有两列,一列用于月份,另一列用于年份。

ID      UsrId       Month  Year  
212175  135564934   6      2016
212175  135564934   11     2013
212175  135564934   3      2014
212175  135564934   7      2015
212175  135564934   2      2016
212175  135564934   1      2016

我想获取两个日期(mm/yyyy)之间的行,例如从 01/2014 到 12/2016。

这应该在一个存储过程中,它采用两个输入参数作为开始日期和结束日期。

谢谢!

【问题讨论】:

  • 你试过什么?您必须将这两列转换为日期,以便实际使用它们。我建议从一开始就使用日期列而不是用于不同日期部分的列是一种更好的方法。

标签: sql sql-server date stored-procedures


【解决方案1】:

一个简单的方法是使用算术:

where year * 100 + month between 201410 and 201612

如果你想要日期算术:

where datefromparts(year, month, 1) between '20141001' and '20161201'

【讨论】:

  • 我总是忘记 datefromparts。我写这些东西太久了,在我自己的代码中没有理由经常与日期作为字符串搏斗。
猜你喜欢
  • 2021-05-19
  • 2019-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-19
  • 1970-01-01
  • 2016-04-17
  • 2022-06-14
相关资源
最近更新 更多