Access如何按年,月,日,周,季查询

String sql = "select count(*) as mynum from Trade group by format(StockDate, 'yyyy-MM')";
这是按月查询的,其他以此类推。
日:
SELECT SJoinTime, ID FROM Sale where format(sjointime,'yyyy-MM-dd')=#2009-03-30#

另外可用datepart函数:

DatePart 函数
返回一个 Integer 值,其中包含给定 Date 值的指定组件。

Public Overloads Function DatePart( _
   ByVal Interval As DateInterval, _
   ByVal DateValue As DateTime, _
   Optional ByVal FirstDayOfWeekValue As FirstDayOfWeek = VbSunday, _
   Optional ByVal FirstWeekOfYearValue As FirstWeekOfYear = VbFirstJan1 _
) As Integer
- 或 -

Public Overloads Function DatePart( _
    ByVal Interval As String, _
   ByVal DateValue As Object, _
   Optional ByVal DayOfWeek As FirstDayOfWeek = FirstDayOfWeek.Sunday, _
   Optional ByVal WeekOfYear As FirstWeekOfYear = FirstWeekOfYear.Jan1 _
) As Integer
参数
Interval
必选项。DateInterval 枚举值或 String 表达式,它表示所要返回的日期/时间值部分。
DateValue
必选项。所要计算的 Date 值。
FirstDayOfWeekValue
可选项。选自 FirstDayOfWeek 枚举的值,该枚举用于指定周的第一天。若未指定,则使用 FirstDayOfWeek.Sunday。
FirstWeekOfYearValue
可选项。选自 FirstWeekOfYear 枚举的值,该枚举用于指定年的第一周。若未指定,则使用 FirstWeekOfYear.Jan1。
设置
Interval 参数可以有以下设置。

枚举值 字符串 所要返回的日期/时间值部分
DateInterval.Day  d 月中的哪一天(从 1 到 31)
DateInterval.DayOfYear  y 年中的哪一天(从 1 到 366)
DateInterval.Hour  h 小时
DateInterval.Minute   分钟
DateInterval.Month  m 月
DateInterval.Quarter   季度
DateInterval.Second  s 秒钟
DateInterval.Weekday  w 星期几(从 1 到 7)
DateInterval.WeekOfYear  ww  年中的哪一周(从 1 到 53)
DateInterval.Year  yyyy 年


FirstDayOfWeekValue 参数可以有以下设置。

枚举值 值 说明
FirstDayOfWeek.System   系统设置中指定的周的第一天  
FirstDayOfWeek.Sunday   星期日(默认)
FirstDayOfWeek.Monday   星期一(依照 ISO 8601 标准第 3.17 节)  
FirstDayOfWeek.Tuesday   星期二
FirstDayOfWeek.Wednesday   星期三
FirstDayOfWeek.Thursday   星期四
FirstDayOfWeek.Friday   星期五
FirstDayOfWeek.Saturday   星期六

FirstWeekOfYearValue 参数可以有以下设置。

枚举值 值 说明
FirstWeekOfYear.System   系统设置中指定的年的第一周
FirstWeekOfYear.Jan1   1 月 1 日所在的周(默认)
FirstWeekOfYear.FirstFourDays   至少有四天属于新年的周(依照 ISO 8601 标准第 3.17 节)
FirstWeekOfYear.FirstFullWeek   新年的第一个全周

异常/错误
异常类型 错误号 条件
ArgumentException 5 Interval 无效。  
InvalidCastException 13 DateValue 不能被强制为 Date。

备注
可以使用 DatePart 函数来计算日期/时间值并返回一个特定组件。例如,可以使用 DatePart 计算某个日期是星期几或目前为几点钟。

若为 Interval 参数选择 DateInterval.Weekday,返回的值与 FirstDayOfWeek 枚举的值一致。若选择 DateInterval.WeekOfYear,DatePart 使用 System.Globalization 命名空间的 Calendar 和 CultureInfo 类来确定当前设置。

FirstDayOfWeekValue 参数会影响使用 DateInterval.Weekday 和 DateInterval.WeekOfYear Interval 设置所进行的计算。FirstWeekOfYearValue 参数影响为 Interval 指定 DateInterval.WeekOfYear 的计算。

如果有任何参数的值无效,就会发生 ArgumentException 错误。若 DateValue 参数值无法被强制为有效的 Date 值,则会发生 InvalidCastException 错误。

比如,如果按月:
sql = "select count(*) as mycount from trade group by datepart('m', stockdate)";
有些人说datepart不能select,原因是interval他们用错了,比如
sql="select datepart('q', stockdate) from trade"就是从trade表中提取stockdate字段的季度值。
posted @   94cool  阅读(1447)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
历史上的今天:
2009-07-28 客户端登录状态下打开对应网站也处于登陆状态
< 2011年7月 >
26 27 28 29 30 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31 1 2 3 4 5 6
点击右上角即可分享
微信分享提示