Rumah pangkalan data tutorial mysql mysql计算离生日还有多少天(过了今年就按下年计算)_MySQL

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

Jun 01, 2016 pm 01:38 PM
java mysql hari jadi

bitsCN.com


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

 

表1:  

     name   birthday        离生日天数 

     aaaa       2012-12-07     5 

     bbbb       2013-01-05      34 

sql: 

Java代码  

SELECT a.* FROM   

(SELECT t.name,t.birthday,CASE WHEN t.b>0 THEN t.b ELSE t.a END days FROM (  

SELECT NAME,birthday ,DATEDIFF(CONCAT(DATE_FORMAT(NOW(),'%Y')+1,DATE_FORMAT(birthday,'-%m-%d')),NOW()) a,  

DATEDIFF(CONCAT(DATE_FORMAT(NOW(),'%Y'),DATE_FORMAT(birthday,'-%m-%d')),NOW()) b  

FROM  hy_member) t) a WHERE a.days BETWEEN 0 AND 40;  

 

mysql 日期一些函数 

 

1. MySQL 为日期增加一个时间间隔:date_add() 

 

set @dt = now(); 

 

select date_add(@dt, interval 1 day);   - 加1天 

 

select date_add(@dt, interval 1 hour);   -加1小时 

 

select date_add(@dt, interval 1 minute);    - 加1分钟 

 

select date_add(@dt, interval 1 second); -加1秒 

 

select date_add(@dt, interval 1 microsecond);-加1毫秒 

 

select date_add(@dt, interval 1 week);-加1周 

 

select date_add(@dt, interval 1 month);-加1月 

 

select date_add(@dt, interval 1 quarter);-加1季 

 

select date_add(@dt, interval 1 year);-加1年 

 

MySQL adddate(), addtime()函数,可以用date_add() 来替代。下面是date_add() 实现addtime() 功能示例: 

 

mysql> set @dt = '2009-09-09 12:12:33'; 

 

mysql> 

 

mysql> select date_add(@dt, interval '01:15:30' hour_second);-加上1小时15分30秒 

 

date_add(@dt, interval '01:15:30' hour_second) 

 

结果:2009-09-09 13:28:03 

 

mysql> select date_add(@dt, interval '1 01:15:30' day_second);-加1天1小时15分30秒 

 

date_add(@dt, interval '1 01:15:30' day_second) 

 

2008-08-10 13:28:03 

 

date_add() 函数,分别为@dt 增加了“1小时15分30秒” 和 “1天1小时15分30秒” 

 

2. MySQL 为日期减去一个时间间隔:date_sub() 

 

mysql> select date_sub('1998-01-01 00:00:00', interval '1 1:1:1' day_second); 

 

date_sub('1998-01-01 00:00:00', interval '1 1:1:1' day_second) 

 

 

 

MySQL date_sub() 日期时间函数 和date_add() 用法一致,不再赘述。另外,MySQL 中还有两个函数subdate(), subtime(),建议,用date_sub() 来替代。 

 

3. MySQL 另类日期函数:period_add(P,N), period_diff(P1,P2) 

 

函数参数“P” 的格式为“YYYYMM” 或者 “YYMM”,第二个参数“N” 表示增加或减去N month(月)。 

 

MySQL period_add(P,N):日期加/减去N月。 

 

mysql> select period_add(200808,2), period_add(20080808,-2) 

 

| period_add(200808,2) | period_add(20080808,-2) | 

 

结果|               200810 |                20080806 | 

 

MySQL period_diff(P1,P2):日期P1-P2,返回N 个月。 

 

mysql> select period_diff(200808, 200801); 

 

period_diff(200808, 200801) 

 

  结果:7 

 

MySQL 中,这两个日期函数,一般情况下很少用到。 

 

4. MySQL 日期、时间相减函数:datediff(date1,date2), timediff(time1,time2) 

 

MySQL datediff(date1,date2):两个日期相减date1 date2,返回天数。网站制作学习网整理 

 

select datediff('2008-08-08', '2008-08-01'); - 7 

 

select datediff('2008-08-01', '2008-08-08'); -7 

 

MySQL timediff(time1,time2):两个日期相减time1 time2,返回time 差值。 

 

select timediff('2008-08-08 08:08:08', '2008-08-08 00:00:00');- 08:08:08 

 

select timediff('08:08:08', '00:00:00');                      - 08:08:08 

 

注意:timediff(time1,time2) 函数的两个参数类型必须相同。
 

bitsCN.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Akar Kuasa Dua di Jawa Akar Kuasa Dua di Jawa Aug 30, 2024 pm 04:26 PM

Akar Kuasa Dua di Jawa

Nombor Sempurna di Jawa Nombor Sempurna di Jawa Aug 30, 2024 pm 04:28 PM

Nombor Sempurna di Jawa

Penjana Nombor Rawak di Jawa Penjana Nombor Rawak di Jawa Aug 30, 2024 pm 04:27 PM

Penjana Nombor Rawak di Jawa

Nombor Armstrong di Jawa Nombor Armstrong di Jawa Aug 30, 2024 pm 04:26 PM

Nombor Armstrong di Jawa

Weka di Jawa Weka di Jawa Aug 30, 2024 pm 04:28 PM

Weka di Jawa

Nombor Smith di Jawa Nombor Smith di Jawa Aug 30, 2024 pm 04:28 PM

Nombor Smith di Jawa

Bagaimana untuk membetulkan ralat mysql_native_password tidak dimuatkan pada MySQL 8.4 Bagaimana untuk membetulkan ralat mysql_native_password tidak dimuatkan pada MySQL 8.4 Dec 09, 2024 am 11:42 AM

Bagaimana untuk membetulkan ralat mysql_native_password tidak dimuatkan pada MySQL 8.4

Soalan Temuduga Java Spring Soalan Temuduga Java Spring Aug 30, 2024 pm 04:29 PM

Soalan Temuduga Java Spring

See all articles