博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
找到7天内要过生日的记录
阅读量:6817 次
发布时间:2019-06-26

本文共 1329 字,大约阅读时间需要 4 分钟。

     前几天去面试,面试官问到了一道题,如何找到7天内需要过生日的记录,一时蒙住了,看来这两年来一直做管理,数据库基本的东西真是丢掉了不少,非常惭愧,导致后面的面试也砸了。

    回来一想,这个问题其实很简单,关键的一点就是找到当前日期和生日的月、日之间的差距在7天内的记录,有点绕的地方是记录的年份哪年的都有,怎么处理这个年是个小技巧,绕过了这点其他的很简单。

   其实年的处理可以找到和现在的年份的差异,给记录的年份增加这个差异;或者构造一个当前年+记录月+记录日的日期进行比较。

代码如下:

 

 1 
--
创建测试库
 2 
create 
database mytempdb
 3 
go
 4 
use mytempdb
 5 
go
 6 
--
创建测试表
 7 
create 
table t1
 8 (
 9 ID 
int 
identity(
1,
1),
10 dbirth 
datetime
11 )
12 
go
13 
14 
--
select * from t1
15 
--
插入测试数据
16 
insert 
into t1
17 
select 
'
2011-2-28
' 
union 
all
18 
select 
'
2001-3-2
' 
union 
all
19 
select 
'
2011-3-7
'
20 
21 
--
方法二
22 
SELECT 
*,
convert(
datetime,
convert(
nvarchar(
4),
year(
getdate()))
+
'
-
'
+
convert(
nvarchar(
4),
month(dbirth))
+
'
-
'
+
convert(
nvarchar(
4),
day(dbirth))) 
as newbirth 
23 
FROM t1 
24 
where 
convert(
datetime,
convert(
nvarchar(
4),
year(
getdate()))
+
'
-
'
+
convert(
nvarchar(
4),
month(dbirth))
+
'
-
'
+
convert(
nvarchar(
4),
day(dbirth))) 
>= 
getdate() 
25 
and 
convert(
datetime,
convert(
nvarchar(
4),
year(
getdate()))
+
'
-
'
+
convert(
nvarchar(
4),
month(dbirth))
+
'
-
'
+
convert(
nvarchar(
4),
day(dbirth))) 
<= 
getdate() 
+ 
7
26 
27 
--
方法一
28 
Select 
* 
from t1
29 
Where 
DateAdd(
year,
Year(
Getdate())
-
Year(dbirth),dbirth)
30 
Between 
Convert(
Varchar(
10),
Getdate(),
120)
31 
And 
Convert(
Varchar(
10),
Getdate()
+
7,
120)

,当初怎么没想到啊,看来得积攒点这些原先玩的东西,难道自己老了?

你可能感兴趣的文章
使用 XML 实现 REST 式的 SOA
查看>>
SQL Server 日志收缩
查看>>
High accuracy voltage regulator
查看>>
directory not found for option
查看>>
【转载】菜鸟Ubuntu下安装Android Studio
查看>>
三阶魔方中心块调整配方和记忆方法
查看>>
Android Studio 快捷键整理分享
查看>>
Android Studio安装、配置
查看>>
SAP FI 财务模块 关键用户 考试练习 问卷
查看>>
Unity3D之Mecanim动画系统学习笔记(八):Animator Layers(动画分层)
查看>>
PIC24FJ64GB002 with bluetooth USB dongle
查看>>
C# ZPL II 命令打印标签
查看>>
代码面试之广义表
查看>>
hdu1754 I hate it线段树模板 区间最值查询
查看>>
【python】抄写大神的糗事百科代码
查看>>
序列化和反序列化
查看>>
android-studio 安装gradle
查看>>
nodejs字符与字节之间的转换
查看>>
C++:函数模板与模板函数
查看>>
iOS 内存管理
查看>>