查出日期不重复的行
我用到一个表student,结构和数据如下 :
id name checkInTime
1 张三 2012-09-09 20:10
2 李四 2012-09-07 12:12
3 王五 2012-09-09 09:30
4 余六 2012-09-07 10:30
5 姜七 2012-09-06 11:13
6 李八 2012-09-08 19:20
7 邓九 2012-09-08 23:10
8 杜十 2012-09-05 18:40
我想找出checkInTime字段值里面日期不一样的5行数据(只看日期,忽视时间),这5行数据都是随机的,只要满足一个条件即checkInTime字段值日期不重复就行。此例的结果可以但不仅仅为:
id name checkInTime
1 张三 2012-09-09 20:10
2 李四 2012-09-07 12:12
5 姜七 2012-09-06 11:13
6 李八 2012-09-08 19:20
8 杜十 2012-09-05 18:40
这个查询语句怎么写?
多谢!
[解决办法]
GO
INSERT INTO [tb]
SELECT
1 ,'张三', '2012-09-09 20:10' UNION ALL SELECT
2 ,'李四', '2012-09-07 12:12' UNION ALL SELECT
3 ,'王五', '2012-09-09 09:30' UNION ALL SELECT
4 ,'余六', '2012-09-07 10:30' UNION ALL SELECT
5 ,'姜七', '2012-09-06 11:13' UNION ALL SELECT
6 ,'李八', '2012-09-08 19:20' UNION ALL SELECT
7 ,'邓九', '2012-09-08 23:10' UNION ALL SELECT
8 ,'杜十', '2012-09-05 18:40'
SELECT * FROM [tb] a WHERE NOT EXISTS(SELECT 1 FROM [tb] WHERE ( CONVERT(CHAR(10),a.chekInTime,120)=CONVERT(CHAR(10),chekInTime,120)) AND a.chekInTime <chekInTime)
/*
id name chekInTime
----------- ---------- -----------------------
1 张三 2012-09-09 20:10:00.000
2 李四 2012-09-07 12:12:00.000
5 姜七 2012-09-06 11:13:00.000
7 邓九 2012-09-08 23:10:00.000
8 杜十 2012-09-05 18:40:00.000
(5 行受影响)
*/