怎么根据月份查找记录啊?

海蓝光科技 2004-07-04 06:21:49
怎么根据一个TDateTime的时间来查找所有和这个TDateTime里月份一样的记录呢?

比如2004-7-1号, 我要查找所有2004-7-1号到2004-7-31号的数据。

我本来想把前面的月份取出来分本加上1, 和31 然后用between
但是有的月份是到30号所以很麻烦了,

不知道用什么方法可以简单点呢?
...全文
187 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
exu 2004-07-05
  • 打赏
  • 举报
回复
补充:
以此类推,结合Year、Day等日期函数,可以得到更精确的数据集
select * from [youtable] where month([youdatefiled])=7 and year([youdatefiled])=2000
选择2000年7月的所有数据
顺便提一句:

SQL92/98是每个学习数据库编程的同志的必修课程。
exu 2004-07-05
  • 打赏
  • 举报
回复
使用Month函数(MS SQL Server 2000),其实大部分数据库都提供这个函数
选择7月份的记录:
select * from [youtable] where month([youdatefiled])=7
海蓝光科技 2004-07-05
  • 打赏
  • 举报
回复
谢谢各位的解答 ,我用的是sql server2000 最后采用了回复人:
exu(大脸猫) ( ) 信誉:100
select * from [youtable] where month([youdatefiled])=7 and year([youdatefiled])=2000
insert2003 2004-07-05
  • 打赏
  • 举报
回复
convert
pigjacs 2004-07-05
  • 打赏
  • 举报
回复

select * from table1 where month1>='2004-7-1' and month1 <='2004-7-31'
maxtool 2004-07-05
  • 打赏
  • 举报
回复
还是like好,当然执行效率差了点
Edman 2004-07-05
  • 打赏
  • 举报
回复
呵呵,谢谢,
oliver88888888 2004-07-04
  • 打赏
  • 举报
回复
up
zhangfeng1133 2004-07-04
  • 打赏
  • 举报
回复
wangweinet777 2004-07-04
  • 打赏
  • 举报
回复
你可以多种方法解决:
1、将数据库中的日期字段在分离细致一些,分为年、月、日,那么查询的时候就是查询年、月等于条件的记录
2、采用扩大搜索范围的办法,适当扩大如,查询2004年07月的记录,就把条件处理为大于等于2004-07-01 AND 小于2004-08-01,也很好处理
3、用SQL的LIKE查询
飞天揽月 2004-07-04
  • 打赏
  • 举报
回复
ding
bob008 2004-07-04
  • 打赏
  • 举报
回复
Open2ye ~的
就按他的办,LIKE最好用,偶喜欢。
johnmack 2004-07-04
  • 打赏
  • 举报
回复
可以用个最笨的方法:
加个字段在输入记录的时候提出月份!
youhuiyun 2004-07-04
  • 打赏
  • 举报
回复
小于8月1日不就可以了?
Open2ye 2004-07-04
  • 打赏
  • 举报
回复
Access 可以这样..
select * from XX表 日期字段 like "2004-7-%"

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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