mysql 计算离生日还有多少天,过了今年就按下年计算

mysql 计算离生日还有多少天,过了今年就按下年计算,第1张

public static void main(String[] args) throws Exception {

String birthday ="2000-02-29"

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd")

Calendar cal = Calendar.getInstance()

int yearNow = cal.get(Calendar.YEAR)// 年

cal.setTime(formatter.parse(birthday))

int birthyear=cal.get(Calendar.YEAR)

while(birthyear<yearNow){

cal.set(Calendar.YEAR,cal.get(Calendar.YEAR)+1)

birthyear=cal.get(Calendar.YEAR)

}

Date ed=new Date()

Date sd=cal.getTime()

long days=0

if((ed.getTime() - sd.getTime()) / (3600 * 24 * 1000)>0 ){

days=(ed.getTime() - sd.getTime()) / (3600 * 24 * 1000)

System.out.println("距离你生日还有" + days + "天")

}else{

cal.set(Calendar.YEAR,cal.get(Calendar.YEAR)+1)

sd=cal.getTime()

days=(ed.getTime() - sd.getTime()) / (3600 * 24 * 1000)

System.out.println("距离你生日还有" + days + "天")

}

}

这个题问题一般要提完整,别人才能回答,这里不知道你的表结构就很难给你弄。默认简单的在同一张表给你弄,select * from 表名 where 存储生日日期字段 = 你的生日。 这里存在数据库里的一般会是时间戳,你查询时把你生日转变成时间戳差就可以了

查询一段时间内过生日的员工,是一个日期的比较的过程,所以只要在where 子句添加时间的筛选即可。

一、语句会用到convert()函数

CONVERT() 函数功能 :

1、把日期转换为新数据类型的通用函数。

2、用不同的格式显示日期/时间数据。

语法:CONVERT(data_type(length),data_to_be_converted,style)

data_type(length) 规定目标数据类型(带有可选的长度)。data_to_be_converted 含有需要转换的值。style 规定日期/时间的输出格式。

可以使用的 style 值:

二、例表格:ygsrb,表结构如下

三、例如查询4月份生日的员工,也就是csrq的日期大等于4月1日,小于5月1日,那么SQL语句就可以这样写:

select * from ygsrb where

right(convert(char(10),csrq,112),4) >= '0401' and

right(convert(char(10),csrq,112),4) <  '0501' 

四、语句解析:

convert(char(10),csrq,112):将日期转换成 ‘yyyymmdd’格式

right(convert(char(10),csrq,112),4):截取转换后的时间右边4位“mmdd”

运行结果:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7427948.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存