一个SQL语句的条件

mizuho_2006 2011-11-13 08:17:14
如何写一个SQL语句,查询日期为今天(系统时间)的记录。。数据库里的时间是字符形式存储的。

select * from tablename where date like tochar(sysdate,'yymmdd')||'%'

我这么写,可是查不出来。。请教各位前辈
...全文
86 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
mizuho_2006 2011-11-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 forgetsam 的回复:]

能倒是能。
[/Quote]

请问用LIKE应该怎么写呢?
forgetsam 2011-11-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 mizuho_2006 的回复:]

to1L: 对,我用的是to_char,这里打错了

to2L:不能用LIKE实现吗?数据库中是带时分秒的,所以才想要用like。
[/Quote]

能倒是能。
mizuho_2006 2011-11-13
  • 打赏
  • 举报
回复
to 3L:我数据库里是用字符串存储时间字段的,所以不用转换成日期型。
mizuho_2006 2011-11-13
  • 打赏
  • 举报
回复
to1L: 对,我用的是to_char,这里打错了

to2L:不能用LIKE实现吗?数据库中是带时分秒的,所以才想要用like。
Cryking 2011-11-13
  • 打赏
  • 举报
回复
select * from tablename where date like to_date(to_char(sysdate,'yyyymmdd'),'yyyymmdd');

因为你的date是日期型(date型的),格式不匹配,无法比较,如果你的date只是存储年月日,可以用LS的,比较简单。
lxyzxq2008 2011-11-13
  • 打赏
  • 举报
回复
--1.假设你的数据库中,日期的存储为8位的年月日:
20110101
20111112
...


--sql
select * from tableName where date = to_char(sysdate, 'yyyyMMdd')

--2.假设你的数据库中,日期存储为带有时分秒的timestamp型,而你想抽出年月日相同的日期,不计较时分秒

20110101142330
...

--sql
select * from tableNmae where substr(date,0,8) = to_char(sysdate, 'yyyyMMdd')
oO寒枫Oo 2011-11-13
  • 打赏
  • 举报
回复
to_char
mizuho_2006 2011-11-13
  • 打赏
  • 举报
回复
我用like做出来了,谢谢大家

select * from tablename where date like substr(to_char(sysdate,'yyyy-mm-dd'),0,10)||'%' 
oO寒枫Oo 2011-11-13
  • 打赏
  • 举报
回复

select * from tablename where instr(to_char(sysdate,'yymmdd'),date)>0
oO寒枫Oo 2011-11-13
  • 打赏
  • 举报
回复

select * from tablename where instr(to_char(sysdate,'yymmdd'),date)>0

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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