【问题标题】:View data by date after Format 'mmyy'格式“mmyy”后按日期查看数据
【发布时间】:2014-04-18 12:45:45
【问题描述】:

我正在尝试回答诸如我们每月有多少个 PO 之类的问题?或者,每个订单每月有多少行,等等。原始订单日期的格式都是#1/1/2013#。所以我的第一步是将每个 PO 记录日期格式化为“mmyy”,这样我就可以对它们进行分组和计数。

这很有效,但是现在我无法按日期查看数据...例如,我无法询问“我们在 12 月之后收到了多少个采购订单?”我认为这是因为 SQL 无法将 mm/yy 识别为可比较的日期。

有什么想法可以重组吗?

我写了 2 个查询。这是格式化日期的查询。这也是我试图添加日期过滤器的查询(例如:>#3/14#)

SELECT qryALL_PO.POLN, Format([PO CREATE DATE],"mm/yy") AS [Date]
FROM qryALL_PO
GROUP BY qryALL_PO.POLN, Format([PO CREATE DATE],"mm/yy");

我的组和计数查询是:

SELECT qryALL_PO.POLN, Sum(qryALL_PO.[LINE QUANTITY]) AS SUM_QTY_PO
FROM qryALL_PO
GROUP BY qryALL_PO.POLN;

【问题讨论】:

  • 对数据进行分组的语句在哪里?您是否尝试操作该结果集?
  • 另外请说明您用于这些日期值的基础列数据类型。它是真正的日期/日期时间,还是用于保存日期的 char/varchar。这有很大的不同。
  • 日期为日期/时间

标签: sql date ms-access


【解决方案1】:

您仍然可以对日期进行计数和分组,只要您有办法确定您要查找的日期部分。

在 Access 中,您可以使用 yearmonth 例如获取日期的年份和月份部分:

select year(mydate)
,      month(mydate)
,      count(*)
from   tableX
group
by     year(mydate)
,      month(mydate)

【讨论】:

  • 我会玩这个。这可能是最好、最准确的解决方案。非常感谢!
【解决方案2】:

您可以将其格式化为 'YYYY-MM' ,然后将 '>' 用于 'after' 子句

【讨论】:

  • 如何创建 WHERE 子句?我试过 >#2013-12# 但 Access 自动将其更改为 12/1/2013
  • >"2013-12" 或动态 >format([SomeDate],"yyyy-mm")
  • 嗯,第一个成功了。它基本上把它当作一个字符串,对吗?
  • 绝对正确。并且因为年份放在月份之前,我们可以使用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-12
  • 2016-03-01
  • 1970-01-01
  • 2021-11-24
  • 1970-01-01
  • 1970-01-01
  • 2015-06-05
相关资源
最近更新 更多