首页 > 数据库 >瀚高数据库按时间年份分组

瀚高数据库按时间年份分组

时间:2023-05-23 13:23:56浏览次数:35  
标签:00 年份 group 数据库 char 分组 date

今天写业务的时候遇到一个需求:根据年份分组统计数量。使用的是瀚高数据库。

听上去好像是小问题,但实际上却是有点困难的。因为数据库中存储的时间是默认到秒的,例如:2023-04-11 00:00:00,如果我们直接使用group by time的话,就会以秒为基本单位进行分组,这显然不是我们想要的,所以我们要做的就是扩大分组的范围。由于瀚高数据库中没有mysql的DATE_FORMAT函数,所以我们无法相mysql那样操作。

在严格的 SQL 里,GROUP BY 只能对源表的列进行分组,但 HGDB 把这个扩展为允许 GROUP BY 去根据选择列表中的列分组,也允许对值表达式进行分组,而不仅是简单的列名。

所以我们要做就是将date类型的时间值转为我所期望的格式来实现控制时间范围,思路就是将date类型转为字符串然后将字符串进行切割作为分组的依据

按年分组:

select count(*),SUBSTRING(to_char(time),0,5) years from tb1 group by years;
-- 这里注意不写year否则会报错,因为year是关键字

to_char函数可以将date类型的值转为字符串,substring可以根据指定下标字符串字串(详情请看官方文档)。

image

按月分组:

select count(*),SUBSTRING(to_char(time),0,8) months from tb1 group by months;
-- 这里也不要写month否则会报错

image

以此类推,我们只需要控制子串就能控制时间的分组范围了

标签:00,年份,group,数据库,char,分组,date
From: https://www.cnblogs.com/luffy123/p/17424315.html

相关文章

  • 7千多最好的古诗欣赏词库ACCESS数据库
    古诗词类的数据虽然已经搞了很多,但是各有各的特点,今天再发一款适合于开发人员开发产品的古诗词库,如果有技术,那么这个诗词类的数据库就是诗词类里最好的数据库。需要说明的是,该数据库需要技术人员或开发人员使用,因为里面有格式针对每一句的翻译或解决,具体可以从文后的样本链接下载......
  • .NET中SQL Server数据库连接方法
    1. 使用本机上的SQLServerExpress实例上的用户实例。     用户实例的连接创建了一个新的SQLServer实例。此连接只能是在本地SQLServer2005实例上并且是通过命名管的windows验证连接才有效。目的就是为了给用户创建一个完全权限的SqlServer实例和有限的计算机管理员......
  • 8千多古诗词唐诗宋词鉴赏ACCESS\EXCEL数据库
    虽然已经有很多诗词类的数据库,最近又再次找了一下古诗词类的数据,又发现了一些,可是真的是各有各的优点,各有各的特色,之后不再重找诗词类的数据了。今天这个诗词鉴赏数据也不错,有分类TAG,也有译文、注释、品析、朝代,但是又有些不足,详见下面说明:朝代记录统计:金朝(15)、近代(8)、两汉(143)......
  • 使用Navicat将SQL server数据库导成mysql数据库
    一、第一种转换方法 1、使用NavicatPremium打开MySql数据库,然后新建一个数据库名(该数据库名称为需要从SqlServer数据库导过来的名称)比如需要将SqlServer数据库中的“BJ_DeviceGovern”数据库导入到MySQL数据库中,则需要现在打开的MySQL中创建一个一样名称的数据库“bj_devicego......
  • 数据库编程(SQL语言)实验体会
    首先需要在SQLServer数据库中创建一个名为[students]的数据库,在该数据库中创建三个表:Sudent表,包含字段Sno、Sname、Ssex、Sage、Sdept。Course表,包含字段Cno、Cname、Ccredit、Semester。SC表,包含字段Sno、Cno、Grade、XKLB。然后需要使用VB6设计一个......
  • 实验三 数据库完整性、安全性实现
    一、实验目的:使学生加深对数据库安全性和完整性的理解,并掌握SQLServer中有关用户、角色及操作权限的管理方法,学会创建和使用规则、缺省和触发器以及存储过程。二、实验要求:通过实验对数据进行完整性控制、安全性维护。三、实验步骤:1、开始→程序→MicrosoftSQLServe......
  • 实验三 数据库完整性、安全性实现(实验体会)
    在这个实验中,您将会学习如何创建数据库、表和触发器,并使用存储过程来实现一些数据查询和操作。此外,我们还将探讨如何授权用户和角色以保证数据库的安全性。在具体操作之前,请先下载并安装SQLServerManagementStudio(SSMS),然后按照以下步骤进行实验:打开SSMS,连接到本地数据库......
  • 实验三 数据库完整性、安全性实现(1)
    以下是可能的代码示例:创建数据库students、创建表Student、Course和SCCopyCodeCREATEDATABASEstudentsGOUSEstudentsGOCREATETABLEStudent(Snochar(7)PRIMARYKEY,Snamechar(10)NOTNULL,Ssexchar(2),Sagetinyint,Sdeptchar(20))G......
  • 实验一 数据库和表的建立、数据操作
    实验一数据库和表的建立、数据操作一、实验目的:掌握使用SQL语言进行数据定义和数据操纵的方法。二、实验要求:建立一个数据库stumanage,建立三个关系表student,course,sc。向表中插入数据,然后对数据进行删除、修改等操作,对关系、数据库进行删除操作。三、实验步骤:1、开始......
  • 实验一 数据库和表的建立、数据操作(1)
    建立数据库stumanage:SQLCopyCodeCREATEDATABASEstumanageON(NAME='stumanage_data',FILENAME='D:\stumanage\stumanage_data.mdf',SIZE=5MB,MAXSIZE=50MB,FILEGROWTH=5MB)LOGON(NAME='stumanage_log',FILENAME=&......