當前位置:首頁 » 編程語言 » sql能寫到什麼年齡
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql能寫到什麼年齡

發布時間: 2022-08-23 01:45:19

㈠ 如何用sql語句把出生日期計算年齡,比如是1984-2-16怎麼算出年齡啊

語句為:SELECT FLOOR(DATEDIFF(CURRENT_DATE,'1984-2-16')/356)

常用sql對資料庫操作:

  1. 連接資料庫命令:mysql -u root -p密碼

  2. 創建資料庫:create database dbname;

  3. 查看所有的資料庫:show databases;

  4. 刪除資料庫:drop database dbname;

  5. 切換資料庫:use dbname;


知識拓展:

MySQL是一個關系型資料庫管理系統,由瑞典MySQL AB 公司開發,目前屬於Oracle旗下產品。MySQL 是最流行的關系型資料庫管理系統之一,在 WEB 應用方面,MySQL是最好的 RDBMS (Relational Database Management System,關系資料庫管理系統) 應用軟體。

㈡ 在資料庫中怎麼編寫查詢年齡在20——30歲之間的會員的sql語句

select*
from會員
where年齡>=20and年齡<=30

「elect * from 學生信息 where age between 18 and 20」此句sql最前面少個s

應該是 select * from 學生信息 where age between 18 and 20 意思是

在學生信息中找年齡在18到20的學生所有欄位信息。

㈢ 關於oracle資料庫 sql的寫法 我想寫一個 關於年齡分組的sql 按1-30歲,31-50歲,50以上. 想分成這3個年齡段

SELECT COUNT(CASE WHEN AGE BETWEEN 1 AND 30 THEN 1 ELSE 0 END) AS 1-30歲
,COUNT(CASE WHEN AGE BETWEEN 31 AND 50 THEN 1 ELSE 0 END) AS 31-50歲
,COUNT(CASE WHEN AGE > 50 THEN 1 ELSE 0 END) AS 50以上
FROM TABLE_NAME;
這個語句就可以做到~

㈣ sql中定義年齡用什麼數據類型,長度為多少

sql中定義年齡可以用的用數據類型及長度:

1、char(3):長度為3的字元串。小於10位且長度基本固定的字元串用char。

2、varchar(3):長度為3的字元串。長度大於10的用varchar,varcha在10以內佔用空間比char大。

3、int:長度為4個位元組,存儲從(-2147483648)到(2147483647)。

4、Smallint:長度為2個位元組,存儲從-32768到32767。

5、tinyint:長度為1個位元組,存儲0到255的數字。

(4)sql能寫到什麼年齡擴展閱讀:

sql函數

UCASE(c)將某個域轉換為大寫

LCASE(c)將某個域轉換為小寫

MID(c,start[,end])從某個文本域提取字元

LEN(c)返回某個文本域的長度

INSTR(c,char)返回在某個文本域中指定字元的數值位置

LEFT(c,number_of_char)返回某個被請求的文本域的左側部分

ROUND(c,decimals)對某個數值域進行指定小數位數的四捨五入

㈤ sql 匹配年齡區間

以前寫過個例子 你看看
思路是先把2-5 切割
然後用游標 循環匹配(匹配三種情況 你看看)

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[import_agedata_to_proct_detail]
as
begin
declare @pid int,@begin float,@end float

--A 產品表 年齡數據
declare proct_age_data cursor for
select id,--proct_code,proct_name,
cast((case when CHARINDEX('-',[extend_property_1]) > 0 THEN
SUBSTRING(extend_property_1,1,CHARINDEX('-',extend_property_1)-1)
else SUBSTRING(extend_property_1,1,CHARINDEX('+',extend_property_1)-1)
end) as float) as beginyeay,
cast((case when CHARINDEX('-',[extend_property_1]) > 0 THEN
SUBSTRING(extend_property_1,CHARINDEX('-',extend_property_1)+1,len(extend_property_1)-CHARINDEX('-',extend_property_1)+1)
else '100'
end) as float) as endyeay
from sf_f_proct where extend_property_1 is not null --and id <200
--A 產品表 年齡數據

--B proct_type表 年齡區間
declare proct_type_data cursor for
select id,--type_name_code,
(case when CHARINDEX('-',description) > 0 THEN
SUBSTRING(description,1,CHARINDEX('-',description)-1)
else SUBSTRING(description,1,CHARINDEX('+',description)-1)
end) as beginyeay,
(case when CHARINDEX('-',description) > 0 THEN
SUBSTRING(description,CHARINDEX('-',description)+1,len(description)-CHARINDEX('-',description)+1)
else '100'
end)as endyeay
from sf_f_proct_type where parent_id=2
--B proct_type表 年齡區間

open proct_age_data
fetch next from proct_age_data into @pid,@begin,@end

while(@@fetch_status=0)
begin

--刪除已有的
print('id--'+cast(@pid as varchar)+':') --print('age:'+cast(@begin as varchar)+'--'+cast(@end as varchar))
delete from sf_f_proct_detail where id in(
select d.id from sf_f_proct_type t,
(select id,relate_id from sf_f_proct_detail where proct_id=@pid and relate_type='type')d
where t.id = d.relate_id and t.parent_id=2)
--刪除已有的

declare @relate_id int,@relate_begin float,@relate_end float
--循環匹配
open proct_type_data
fetch next from proct_type_data into @relate_id,@relate_begin,@relate_end
while(@@fetch_status=0)
begin
--三種情況說明 以0.5-5.5為例 匹配0-2,3-4,5-6
--0<=0.5 && 0.5<=2, 0.5<=3 && 4<=5.5, 5<5.5 && 5.5<=6
if((@relate_begin<=@begin and @begin<@relate_end) or (@begin<=@relate_begin and @relate_end<=@end) or (@relate_begin<@end and @end<=@relate_end))
begin
--print(' '+cast(@relate_begin as varchar)+'--'+cast(@relate_end as varchar))
insert into sf_f_proct_detail(proct_id,relate_type,relate_id,last_update_time,last_update_by)
values(@pid,'type',@relate_id,getdate(),3)
end

fetch next from proct_type_data into @relate_id,@relate_begin,@relate_end
end
close proct_type_data
--循環匹配

--print('-------------')
fetch next from proct_age_data into @pid,@begin,@end
end

close proct_age_data
deallocate proct_type_data
deallocate proct_age_data
end

㈥ 怎麼用SQL語句表示年齡表中只有出生日期這個欄位

首先呢根據題目來看實在資料庫實現的時候沒有考慮全面。在設計階段可以只有出生日期,但應該能分析到年齡是經常使用的,必須將年齡設計成派生屬性,在關系的實現時將其作為表的一個列age,並為其設置默認值year(getdate())-year(出生日期),這樣在查詢的時候直接查選age即可。建議修改表結構,一勞永逸。其次,如果不修改表結構,也只能使用sql中的日期函數,比如datediff。在這給出sqlserver中的寫法:
select DATEDIFF(yy, GETDATE(), 出生日期) as 'age' from table_name
還有一種辦法,就是在應用編程中操作,利用腳本語言進行處理。

㈦ sql server 中我想儲存年齡欄位精確到幾歲零幾個月該怎麼做

資料庫里存 出生日期,想顯示年齡欄位,在select語句里寫如下:

select *,CONVERT(varchar(8),DATEPART(DAY,GETDATE())) + '歲零' + CONVERT(varchar(8),DATEPART(MONTH,GETDATE())) + '月' as 年齡 from 表

㈧ sql 計算年齡

用getdate()獲得今天的日期,再用datediff算的年數
也可以直接取年份相減啊

㈨ SQL中,如何查詢年齡

日期函數,access與SQL
Server是有一點區別的,
如果是access的話,
select
*
from
你的表名
where
year(now())-year(出生日期)
between
20
and
25
如果是SQL
Server的話,
select
*
from
你的表名
where
year(getdate())-year(出生日期)
between
20
and
25
呵呵,希望能有幫助,^_^

㈩ 關於年齡段查詢的sql語句:怎麼寫出來呀 年齡段 人數 百分比 男 女 合計 男 女 0-10 11-20 。 。

給一個示例,自己修改

SELECT '年齡段'=(case
WHEN (datediff(year,EBIRTHDAY,getdate())-1)<=25 THEN '25歲及以下'
WHEN (datediff(year,EBIRTHDAY,getdate())-1)<=33 THEN '26歲-33歲'
WHEN (datediff(year,EBIRTHDAY,getdate())-1)<=41 THEN '34歲-41歲'
else '41歲以上'
END),
COUNT(FID) AS 人數,
CAST(
LEFT(
ROUND(100.00 * COUNT(FID) / (SELECT COUNT(FID) AS total
FROM tperson
WHERE FEmployState='正式'),
2),
5)
AS VARCHAR) + '%' AS 百分比

FROM TPERSON
WHERE FEmployState IN ('正式')
GROUP BY
(case
WHEN (datediff(year,EBIRTHDAY,getdate())-1)<=25 THEN '25歲及以下'
WHEN (datediff(year,EBIRTHDAY,getdate())-1)<=33 THEN '26歲-33歲'
WHEN (datediff(year,EBIRTHDAY,getdate())-1)<=41 THEN '34歲-41歲'
else '41歲以上'
END)