㈠ sql 如何查詢出相差兩年的所有日期
假設表名為TB,有兩列,Name, Birthday
select a.*, b.* from TB a, (select * from TB) b where datediff(yy, a.Birthday, b.Birthday) = 1 and convert(varchar(5), a.Birthday, 1) = convert(varchar(5), b.Birthday, 1)
㈡ 資料庫年齡差計算公式
1、計算年齡其實就是計算當前日期和出生日期之間的差值
2、SQL計算時間差值使用的函數是:Datediff()
定義和用法:
DATEDIFF() 函數返回兩個日期之間的天數。
語法:
DATEDIFF(datepart,startdate,enddate)
startdate 和 enddate 參數是合法的日期表達式。
datepart 參數可以是下列的值:
datepart--縮寫
年--yy或yyyy
季度--qq或q
月--mm或m
年中的日--dy或y
日--dd或d
周--wk或ww
星期--dw或w
小時--hh
分鍾--mi或n
秒--ss或s
毫秒--ms
微妙--mcs
納秒--ns
㈢ PL/SQL中如何求兩個日期之間相差的年月日(就是要得到這樣的數據:YYYYMMDD),要精確值
用months_between() 函數求出兩個日期相差的月數,這個求出來比較准確,可以滿足精確計算工齡也比較符合業務需求,再除以12
select months_between(sysdate,date'2012-01-01') from al;
㈣ 計算兩個時間相差多少年月日的sql演算法
如:起始時間 2011-1-1 截止日期 2011-2-1 兩個時間比較相差 0年1個月 如:起始時間 2010-11-1 截止日期 2011-12-1 兩個時間比較相差 1年1個月 怎麼比較才能得出~ 相差多少年 多少個月 這個當然很簡單, 一句SQL就可以了:select ltrim(datediff(yy,@dt1,@dt2))+'年'+ltrim(datediff(mm,@dt1,@dt2)%12)+'月'
但是如果連幾天也要計算呢?閑著沒事自己隨便在SQL Server下寫了寫,store proceres代碼如下,應該沒可以了:CREATE PROCEDURE GetDateDiff
@fromDate nvarchar(10),
@toDate nvarchar(10)
AS
DECLARE @YearDiff INTEGER
DECLARE @MonthDiff INTEGER
DECLARE @DayDiff INTEGER
DECLARE @ToMonth INTEGER
DECLARE @FromDay INTEGER
DECLARE @ToDay INTEGER
SET @YearDiff = LTRIM(DATEDIFF(yy, @fromDate, @toDate))
SET @MonthDiff = LTRIM(DATEDIFF(mm, @fromDate, @toDate)%12)
SET @ToMonth = Month(cast(@toDate as Datetime))
SET @FromDay = Day(cast(@fromDate as Datetime))
SET @ToDay = Day(cast(@ToDate as Datetime))
IF (@ToDay - @FromDay) < 0
BEGIN
IF (@ToMonth - 1) = 1 OR (@ToMonth - 1) = 3 OR (@ToMonth - 1) = 5 OR (@ToMonth - 1) = 7 OR (@ToMonth - 1) = 8 OR (@ToMonth - 1) = 10 OR (@ToMonth - 1) = 12
BEGIN
SET @DayDiff = 31 + @Today - @FromDay
SET @MonthDiff = @MonthDiff -1
END
ELSE
BEGIN
SET @DayDiff = 30 + @Today - @FromDay
SET @MonthDiff = @MonthDiff -1
END
END
ELSE
BEGIN
SET @DayDiff = @Today - @FromDay
END
SELECT CAST(@YearDiff AS NVARCHAR(10)) + '年' + CAST(@MonthDiff AS NVARCHAR(10)) + '月' + CAST(@DayDiff AS NVARCHAR(10)) + '日'
㈤ 如何用SQL語句把出生日期計算年齡,比如是1984-2-16怎麼算出年齡啊
語句為:SELECT FLOOR(DATEDIFF(CURRENT_DATE,'1984-2-16')/356)
常用sql對資料庫操作:
連接資料庫命令:mysql -u root -p密碼
創建資料庫:create database dbname;
查看所有的資料庫:show databases;
刪除資料庫:drop database dbname;
切換資料庫:use dbname;
知識拓展:
MySQL是一個關系型資料庫管理系統,由瑞典MySQL AB 公司開發,目前屬於Oracle旗下產品。MySQL 是最流行的關系型資料庫管理系統之一,在 WEB 應用方面,MySQL是最好的 RDBMS (Relational Database Management System,關系資料庫管理系統) 應用軟體。
㈥ PL/SQL中如何求兩個日期之間相差的年月日(就是要得到這樣的數據:YYYYMMDD),要精確值
用months_between()
函數求出兩個日期相差的月數,這個求出來比較准確,可以滿足精確計算工齡也比較符合業務需求,再除以12
select
months_between(sysdate,date'2012-01-01')
from
al;
㈦ 如何簡單地用一句SQL算一下兩個日期間相差的月份數
使用Datedif(日期1,日期2,"m")函數
DATEDIF是EXCEL中的函數,還有以下的使用方法一並教教:
1、簡要說明: 返回兩個日期之間的年\月\日間隔數
2、基本語法: =DATEDIF(開始日期,結束日期,單位代碼)
3、實例1:
題目: 計算出生日期為1973-4-1人的年齡
公式: =DATEDIF("1973-4-1",TODAY(),"Y")
結果: 33
簡要說明 當單位代碼為"Y"時,計算結果是兩個日期間隔的年數.
4、實例2:
題目: 計算日期為1973-4-1和當前日期的間隔月份數.
公式: =DATEDIF("1973-4-1",TODAY(),"M")
結果: 403
簡要說明 當單位代碼為"M"時,計算結果是兩個日期間隔的月份數.
5、實例3:
題目: 計算日期為1973-4-1和當前日期的間隔天數.
公式: =DATEDIF("1973-4-1",TODAY(),"D")
結果: 12273
簡要說明 當單位代碼為"D"時,計算結果是兩個日期間隔的天數.
5、實例4:
題目: 計算日期為1973-4-1和當前日期的不計年數的間隔天數.
公式: =DATEDIF("1973-4-1",TODAY(),"YD")
結果: 220
簡要說明 當單位代碼為"YD"時,計算結果是兩個日期間隔的天數.忽略年數差
5、實例5:
題目: 計算日期為1973-4-1和當前日期的不計月份和年份的間隔天數.
公式: =DATEDIF("1973-4-1",TODAY(),"MD")
結果: 6
簡要說明 當單位代碼為"MD"時,計算結果是兩個日期間隔的天數.忽略年數和月份之差
5、實例6:
題目: 計算日期為1973-4-1和當前日期的不計年份的間隔月份數.
公式: =DATEDIF("1973-4-1",TODAY(),"YM")
結果: 7
簡要說明 當單位代碼為"YM"時,計算結果是兩個日期間隔的月份數.不計相差年數
㈧ 計算兩個時間相差多少年月日的sql演算法
SELECT CAST(@YearDiff AS NVARCHAR(10)) + '年' + CAST(@MonthDiff AS NVARCHAR(10)) + '月' + CAST(@DayDiff AS NVARCHAR(10)) + '日'!
㈨ SQL里求兩個日期相差的年數
select(DATEDIFF(month,日期1,日期2)+0.0)/12
這樣?
㈩ sql 計算兩個日期相差多少年月日
如:起始時間
2011-1-1
截止日期
2011-2-1
兩個時間比較相差
0年1個月
如:起始時間
2010-11-1
截止日期
2011-12-1
兩個時間比較相差
1年1個月
怎麼比較才能得出~
相差多少年
多少個月
這個當然很簡單,
一句sql就可以了:select
ltrim(datediff(yy,@dt1,@dt2))+'年'+ltrim(datediff(mm,@dt1,@dt2)%12)+'月'
但是如果連幾天也要計算呢?閑著沒事自己隨便在sql
server下寫了寫,store
proceres代碼如下,應該沒可以了:create
procere
getdatediff
@fromdate
nvarchar(10),
@todate
nvarchar(10)
as
declare
@yeardiff
integer
declare
@monthdiff
integer
declare
@daydiff
integer
declare
@tomonth
integer
declare
@fromday
integer
declare
@today
integer
set
@yeardiff
=
ltrim(datediff(yy,
@fromdate,
@todate))
set
@monthdiff
=
ltrim(datediff(mm,
@fromdate,
@todate)%12)
set
@tomonth
=
month(cast(@todate
as
datetime))
set
@fromday
=
day(cast(@fromdate
as
datetime))
set
@today
=
day(cast(@todate
as
datetime))
if
(@today
-
@fromday)
<
0
begin
if
(@tomonth
-
1)
=
1
or
(@tomonth
-
1)
=
3
or
(@tomonth
-
1)
=
5
or
(@tomonth
-
1)
=
7
or
(@tomonth
-
1)
=
8
or
(@tomonth
-
1)
=
10
or
(@tomonth
-
1)
=
12
begin
set
@daydiff
=
31
+
@today
-
@fromday
set
@monthdiff
=
@monthdiff
-1
end
else
begin
set
@daydiff
=
30
+
@today
-
@fromday
set
@monthdiff
=
@monthdiff
-1
end
end
else
begin
set
@daydiff
=
@today
-
@fromday
end
select
cast(@yeardiff
as
nvarchar(10))
+
'年'
+
cast(@monthdiff
as
nvarchar(10))
+
'月'
+
cast(@daydiff
as
nvarchar(10))
+
'日'