VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1599|回复: 15

小问题,SQL里如何得到距离某个日期的天数?

[复制链接]

2

主题

7

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
发表于 2020-2-8 07:30:01 | 显示全部楼层 |阅读模式
有生日日期A(2000-02-01),请问我怎么得到今天离这个生日日期(02月-01日)的天数?
回复

使用道具 举报

0

主题

52

帖子

34.00

积分

新手上路

Rank: 1

积分
34.00
发表于 2020-4-1 19:45:01 | 显示全部楼层
例如 SQLServer中 使用datediff函数即可
回复

使用道具 举报

2

主题

7

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
 楼主| 发表于 2020-4-2 09:15:01 | 显示全部楼层
这样不行啊。
回复

使用道具 举报

0

主题

119

帖子

67.00

积分

新手上路

Rank: 1

积分
67.00
发表于 2020-4-2 11:00:02 | 显示全部楼层
select datediff(day,'2017-01-03',getdate())
回复

使用道具 举报

0

主题

26

帖子

21.00

积分

新手上路

Rank: 1

积分
21.00
发表于 2020-4-2 15:00:01 | 显示全部楼层
SQL Server
select DATEDIFF(day, convert(datetime,'20170101',112), getdate())

Oracle
select to_date(to_char(sysdate,'yyyy-mm-dd'), 'yyyy-mm-dd') - to_date('2017-01-01', 'yyyy-mm-dd') from dual
回复

使用道具 举报

0

主题

52

帖子

34.00

积分

新手上路

Rank: 1

积分
34.00
发表于 2020-4-2 18:00:02 | 显示全部楼层
SELECT DAY(BirthDate) - DAY(GETDATE()) AS Expr1
FROM Employees
回复

使用道具 举报

2

主题

7

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
 楼主| 发表于 2020-4-3 02:30:01 | 显示全部楼层
非常感谢!
回复

使用道具 举报

0

主题

17

帖子

14.00

积分

新手上路

Rank: 1

积分
14.00
发表于 2020-4-3 15:00:01 | 显示全部楼层
这个问题没这么简单。
举例,如果生日是6月1日。
当前日期如果是2017年5月1日,那么,应该是30天。
当前日期如果是2017年6月2日,那么,应该是364天。而不是1天。
回复

使用道具 举报

0

主题

26

帖子

21.00

积分

新手上路

Rank: 1

积分
21.00
发表于 2020-4-3 20:15:01 | 显示全部楼层
要只处理月份,那么增加字符串处理成当年就OK了
select DATEDIFF(day,  convert(datetime,substring(convert(varchar,getdate(),112),1,4)+substring('20000101',5,len('20000101')),112), getdate())
回复

使用道具 举报

1

主题

8

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
发表于 2020-4-8 09:15:01 | 显示全部楼层
再转成字符串? substring是只针对字符串才可以用的呀
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表