标题:[求助]SQL里如何计算日期
只看楼主
青格儿
Rank: 4
等 级:贵宾
威 望:11
帖 子:698
专家分:20
注 册:2007-7-31
得分:0 
多谢各位朋友的回答,我才学SQL,可以给我具体写下SQL语句吗?谢谢!
2007-10-15 18:52
西风独自凉
Rank: 8Rank: 8
等 级:贵宾
威 望:43
帖 子:3380
专家分:28
注 册:2007-8-2
得分:0 
update employee
set gongling= datediff(day,startdate,getdate())

2007-10-15 19:19
胡桂生
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2007-9-14
得分:0 

create table employee
(
ID int primary key,
YG_NAME varchar(10),
SEX char(2) default '男',
STARTDATE datetime,
GONGLING int
)

insert into employee(id,yg_name,sex,startdate,gongling) values(11,'张三','男','2000-1-1',null)

update employee
set gongling = datediff(day,(select startdate from employee where id = 11),getdate())
/*datediff() 是系统函数,返回跨两个指定日期的日期和时间边界数,它有三个参数:第一个是要返回的日期的部分
(day,month,year)等,第二个是开始时期,第三个是结束时期*/

2007-10-16 12:58
胡桂生
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2007-9-14
得分:0 
以下是引用青格儿在2007-10-14 19:04:56的发言:
我知道 day就是天了,我是说让年和天一快显示出来,也就是说:
startdate :2000-9-14 如当前时间是:2007-10-14

gongling :7年30天 (如何让天和年一块显示出来,而不是只算天数,也就是让gongling列都显示成“多少年多少天”形式)

另,有时学号的前几位是固定的,如sss001,sss002 ……
我想在每次输学号时不用再输sss直接输001,002……(也就是打开表后sss就已显示了,只用填后三位就行了) 那怎么做?


你在创建表时,gongling这一属性的类型是int ,能显示“7年30天”么?

2007-10-16 13:15



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-177487-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.261530 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved