我想获得当前日期的所有行的计数。
Column name = LOGIN_TIME (format is TIMESTAMP)
现在我有USER_NAME
和SUBJECT
个值。
表格结构:
USER_NAME SUBJECT LOGIN_TIME
-----------------------------------
abc physics 01-MAY-13 12.27.50.863000000 AM
abc math 02-MAY-13 01.01.47.863000000 PM
def physics 16-MAY-13 06.42.48.863000000 PM
abc physics 16-MAY-13 02.29.11.863000000 PM
现在,对于user_name='aaa'
和subject = 'physics'
以及current date (of REQUEST_TIME)
,我想要检索行数。
请帮我解决这个问题。
答案 0 :(得分:2)
当您使用SQL Developer标记问题时,我假设您使用的是Oracle。
在这种情况下,您可以使用trunc()
函数“删除”时间戳(或date
)列的时间部分。 “删除”表示它设置为00:00:00。您还需要对current_date
,sysdate
或current_timestamp
执行此操作,因为所有这些内容(包括current_date
)都会随身携带
话虽如此,结果将是这样的:
select count(*)
from the_table
where user_name = 'abc'
and subject = 'physics'
and trunc(login_time) = trunc(current_date)
答案 1 :(得分:0)
此查询应该完成工作。只需用表格的实际名称替换Table_name
。
SELECT Count(*) FROM Table_Name WHERE USER_NAME = 'abc' AND SUBJECT = 'physics' AND TRUNC(LOGIN_TIME) >= TRUNC(SYSDATE - 1)