c语言用time(0)获取当前时间_详解sql中时间以5分钟半个小时任意间隔分组的实现方法...

开发中遇到过问题就是对时间以半个小时分钟分组,如统计08:00-08:30的人数,08:30-09:00的人数,貌似sql中没有这样的函数吧,直接从数据库里查出来,在java里分组也太low了吧

想到方法1 自定义函数,自己实现时间的半个小时转换,统计时调用函数

CREATE FUNCTION `date_half_hour_format`(in_date TIMESTAMP) RETURNS TIMESTAMPBEGIN DECLARE out_date TIMESTAMP; DECLARE s_date VARCHAR(255); DECLARE s_minute VARCHAR(2); DECLARE int_minute INT;  SET s_minute = SUBSTRING(in_date, 15, 2); SET int_minute = CAST(s_minute AS SIGNED);  IF int_minute <= 29 THEN SET int_minute = 0; SET s_date = CONCAT(LEFT(in_date, 14),'0',int_minute); ELSE SET int_minute = 30; SET s_date = CONCAT(LEFT(in_date, 14),int_minute); END IF;  SET out_date = STR_TO_DATE(s_date,'%Y-%m-%d %H:%i');  RETURN out_date; END
9d667f1962ada120e77a876266283644.png

方法2 学过c语言更清楚c语言创建时间都是一个long的时间戳,可以对时间做除法运算,就是时间long的值除以30*60,这样就能得出半个小时的时间了,mysql中有函数unix_timestamp获取long的时间,从long转date的form_unixtime

SELECT FROM_UNIXTIME((UNIX_TIMESTAMP(CURRENT_TIMESTAMP) DIV 1800)*1800)

这样就可以按任意时间分组了

ps:SQL Server 时间查询

select dateadd(dd,-day(getdate()) + 1,getdate()) '当月起始时间'  //查询当月起始时间 select dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)) '当月结束时间'  //查询当月结束时间 select dateadd(dd,-day(dateadd(month,-1,getdate()))+1,dateadd(month,-1,getdate())) '上月起始时间'  //查询上月起始时间 select dateadd(dd,-day(getdate()),getdate()) '上月结束时间'  //查询上月结束时间 select dateadd(quarter,datediff(quarter,0,getdate())-1,0) as '当前季度的上个季度初'  //查询当前季度的上个季度开始时间 select dateadd(quarter,datediff(quarter,0,getdate()),-1) as '当前季度的上个季度末'  //查询当前季度的上个季度结束时间 select dateadd(quarter,datediff(quarter,0,getdate()),0) as '当前季度的第一天'  //查询当前季度起始时间 select dateadd(quarter,1+datediff(quarter,0,getdate()),-1) as '当前季度的最后一天'  //查询当前季度结束时间 select dateadd(quarter,1+datediff(quarter,0,getdate()),0) as '当前季度的下个季度初'  //查询当前季度下个季度开始时间 select dateadd(quarter,2+datediff(quarter,0,getdate()),-1) as '当前季度的下个季度末'  //查询当前季度下个季度结束时间 select dateadd(year,datediff(year,0,DATEADD(year,-1,getdate())),0) '去年的第一天'  //去年的第一天 select dateadd(year,datediff(year,0,getdate()),-1) '去年最后一天'  //去年的最后一天 select dateadd(year, datediff(year, 0, getdate()), 0) '当年的第一天'  //当年的第一天 select dateadd(year,datediff(year,0,dateadd(year,1,getdate())),-1) '当年的最后一天'  //当年的最后一天

后面会分享更多运维方面的干货,感兴趣的朋友可以关注一下~

7977073f730c7fd7df0276f07dbcdf51.gif
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在C语言,您可以使用time函数从系统获取当前时间,并将其格式化为您想要的字符串格式。以下是一个示例程序,它演示了如何使用time函数获取当前时间并将其格式化为年月日小时分钟秒的字符串格式: ```c #include <stdio.h> #include <time.h> int main() { time_t now = time(NULL); struct tm *t = localtime(&now); char buffer[80]; strftime(buffer, 80, "%Y-%m-%d %H:%M:%S", t); printf("当前时间是:%s\n", buffer); return 0; } ``` 该程序time(NULL)函数返回当前时间的秒数(自1970年1月1日起),localtime函数将这个秒数转换为本地时间(因为不同的时区会有不同的时间),并将其存储在一个struct tm类型的结构体变量。最后,strftime函数将struct tm类型的结构体变量时间格式化为指定的字符串格式,并将其存储在一个字符数组。 ### 回答2: 在C语言,可以使用time函数来获取当前时间,并将其输出。 首先,我们需要引入头文件"time.h",该头文件是C语言标准库的一部分,用于实现时间相关的功能。 然后,我们可以使用time函数来获取当前时间,它的原型为:time_t time(time_t *timer)。其time_t是一个整数类型,用于表示时间的秒数。timer是一个指向time_t类型的指针,用于存储函数返回的时间值。 接下来,我们可以声明一个time_t类型的变量,用于存储time函数返回的时间值。然后对time函数进行调用,将返回的值赋给该变量。 最后,我们可以使用其他时间相关的函数,如localtime和strftime,将时间值转换为可读的格式,并输出到屏幕上。 下面是一个示例代码: #include <stdio.h> #include <time.h> int main() { time_t t; time(&t); struct tm *current_time = localtime(&t); char time_string[20]; strftime(time_string, sizeof(time_string), "%Y-%m-%d %H:%M:%S", current_time); printf("当前时间:%s\n", time_string); return 0; } 在上面的代码time_t类型的变量t用于存储当前时间的秒数。然后,我们使用localtime函数将时间值转换为当前时区的时间结构,并将其存储在结构体指针current_time。 接着,使用strftime函数将时间结构current_time转换为指定格式的字符串,"%Y-%m-%d %H:%M:%S"代表年-月-日 时:分:秒的格式,并将转换后的结果存储在字符数组time_string。 最后,使用printf函数将格式化后的时间字符串输出到屏幕上。运行程序后,将显示当前时间的格式化结果。 以上就是使用C语言time函数来获取当前时间并输出的方法。 ### 回答3: C语言可以通过使用time函数来获取当前的时间,并将其输出。time函数的原型如下: ``` time_t time(time_t *timer); ``` 其time_t是一个数据类型,用于存储系统时间的秒数。在使用time函数时,我们需要定义一个time_t类型的变量来保存返回的时间值。下面是一个使用time函数获取当前时间并输出的示例代码: ```c #include <stdio.h> #include <time.h> int main() { time_t current_time; time(&current_time); // 获取当前时间 printf("当前时间为: %s", ctime(&current_time)); // 输出当前时间 return 0; } ``` 在上述代码,我们首先定义了一个time_t类型的变量current_time,用于保存当前时间的值。然后,我们使用time(&current_time)来获取当前时间,其&current_time表示将current_time的地址传递给time函数,以便将获取的时间值保存在current_time。最后,我们使用ctime函数将当前时间的值以字符串的形式输出。 通过运行上述代码,我们可以得到类似以下的输出结果: ``` 当前时间为: Fri Oct 8 00:00:00 2021 ``` 这里的时间结果可能会根据当前系统的设置而有所不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值