问两个sql查询语句,查询每天中最后一条数据,根据年月查询数据

momozale 2017-01-03 12:08:19
1.查询每天中最后一条数据:如2017-01-03这一天有10条数据,我需要最后一条数据,然后问题是我同时需要2017-01-01与2017-01-02等多天中的最后一条数据,查询出来的是多条最后一条数据
2.根据年月查询数据:数据库时间是时间戳,语句怎样查询2017-01这一月的数据。
...全文
513 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
VertigozZ 2017-01-03
  • 打赏
  • 举报
回复
引用 7 楼 momozale 的回复:
[quote=引用 6 楼 VertigozZ 的回复:] [quote=引用 4 楼 momozale 的回复:] [quote=引用 1 楼 VertigozZ 的回复:] 你的最后一条数据是怎么定义的? 是时间最晚的那条数据还是id最大的那条????
就是每天都有数据插入,我需要每天最后插入的那条数据[/quote] 这样即可:


select * from table1 t1
WHERE t1.id = (SELECT max(id) FROM TABLE1 t2 where LEFT(t1.cdate,10) = LEFT(t2.cdate,10))


[/quote] 大哥牛X啊,查出来了,不过如果日期是时间戳又怎样处理[/quote]


 from_unixtime(time_stamp)    将时间戳转换为日期 (用这个函数即可)
 
unix_timestamp(date)   将指定的日期或者日期字符串转换为时间戳

ACMAIN_CHM 2017-01-03
  • 打赏
  • 举报
回复
参考下贴中的多种方法 http://blog.csdn.net/acmain_chm/article/details/4126306 [征集]分组取最大N条记录方法征集,及散分....
momozale 2017-01-03
  • 打赏
  • 举报
回复
引用 6 楼 VertigozZ 的回复:
[quote=引用 4 楼 momozale 的回复:] [quote=引用 1 楼 VertigozZ 的回复:] 你的最后一条数据是怎么定义的? 是时间最晚的那条数据还是id最大的那条????
就是每天都有数据插入,我需要每天最后插入的那条数据[/quote] 这样即可:


select * from table1 t1
WHERE t1.id = (SELECT max(id) FROM TABLE1 t2 where LEFT(t1.cdate,10) = LEFT(t2.cdate,10))


[/quote] 大哥牛X啊,查出来了,不过如果日期是时间戳又怎样处理
VertigozZ 2017-01-03
  • 打赏
  • 举报
回复
引用 4 楼 momozale 的回复:
[quote=引用 1 楼 VertigozZ 的回复:] 你的最后一条数据是怎么定义的? 是时间最晚的那条数据还是id最大的那条????
就是每天都有数据插入,我需要每天最后插入的那条数据[/quote] 这样即可:


select * from table1 t1
WHERE t1.id = (SELECT max(id) FROM TABLE1 t2 where LEFT(t1.cdate,10) = LEFT(t2.cdate,10))


momozale 2017-01-03
  • 打赏
  • 举报
回复
引用 2 楼 ACMAIN_CHM 的回复:
引用
1.查询每天中最后一条数据:如2017-01-03这一天有10条数据,我需要最后一条数据,然后问题是我同时需要2017-01-01与2017-01-02等多天中的最后一条数据,查询出来的是多条最后一条数据
select * from table1 where cdate >='2017-01-01' and cdate <'2017-01-02' order by id desc limit 1;
引用
2.根据年月查询数据:数据库时间是时间戳,语句怎样查询2017-01这一月的数据。
select * from table1 where 时间戳 between UNIX_TIMESTAMP('2017-01-01') and UNIX_TIMESTAMP('2017-02-01')-1
这个你查询的是一天中的最后一条数据,我想要的是多天中每天最后插入的数据, 就是显示一个历史记录,但是这个历史记录只显示每天最后更新的数据
momozale 2017-01-03
  • 打赏
  • 举报
回复
引用 1 楼 VertigozZ 的回复:
你的最后一条数据是怎么定义的? 是时间最晚的那条数据还是id最大的那条????
就是每天都有数据插入,我需要每天最后插入的那条数据
ACMAIN_CHM 2017-01-03
  • 打赏
  • 举报
回复
引用
1.查询每天中最后一条数据:如2017-01-03这一天有10条数据,我需要最后一条数据,然后问题是我同时需要2017-01-01与2017-01-02等多天中的最后一条数据,查询出来的是多条最后一条数据
select * from table1 where cdate >='2017-01-01' and cdate <'2017-01-02' order by id desc limit 1;
引用
2.根据年月查询数据:数据库时间是时间戳,语句怎样查询2017-01这一月的数据。
select * from table1 where 时间戳 between UNIX_TIMESTAMP('2017-01-01') and UNIX_TIMESTAMP('2017-02-01')-1
VertigozZ 2017-01-03
  • 打赏
  • 举报
回复
你的最后一条数据是怎么定义的? 是时间最晚的那条数据还是id最大的那条????

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧