一个SQL的问题(10分)

  • 主题发起人 主题发起人 fonder
  • 开始时间 开始时间
select * from rdk where date>='2002-12-20 00:00:00'and date<'2002-12-20 23:59:59'
这样就行
 
在查一下,向你的RDK字段中存数据时,是否带有时、分、秒
 
通过测试我发现如下代码可以实现,
select * from rdk where date like '12 20 2002%'' 可以实现日期的模糊查询
但不知怎解释?
 
我想,日期型字段在实际存储时可能存为浮点数的,
可以用between,>,<等来比较,
而like是用来比较字符串的。(当然,像zsag兄先把字段转换为字符型的也可以)
 
select * from rdk where date='20021220'
这是我经常用到的,应该没问题。
 
用 lanbing1400的:
下面这段话你看一看:
当你分析表中的数据时,你也许希望取出某个特定时间的数据。
你也许对特定的某一天中――比如说2000年12月25日――访问者在你站点上的活动感兴趣。
要取出这种类型的数据,你也许会试图使用这样的SELECT语句:

SELECT * FROM weblog WHERE entrydate=”12/25/20000”

不要这样做。这个SELECT语句不会返回正确的记录――它将只返回日期和时间
是12/25/2000 12:00:00:000AM的记录。换句话说,只有刚好在午夜零点输入的记录才被返回。

要返回正确的记录,你需要适用日期和时间范围。有不止一种途径可以做到这一点。例如,
下面的这个SELECT 语句将能返回正确的记录:

SELECT * FROM weblog

WHERE entrydate>=”12/25/2000” AND entrydate<”12/26/2000”

这个语句可以完成任务,因为它选取的是表中的日期和时间大于等于
12/25/2000 12:00:00:000AM并小于12/26/2000 12:00:00:000AM的记录。换句话说,
它将正确地返回2000年圣诞节这一天输入的每一条记录。

另一种方法是,你可以使用LIKE来返回正确的记录。通过在日期表达式中包含
通配符“%”,你可以匹配一个特定日期的所有时间。这里有一个例子:

SELECT * FROM weblog WHERE entrydate LIKE ‘Dec 25 2000%’

这个语句可以匹配正确的记录。因为通配符“%”代表了任何时间。

使用这两种匹配日期和时间范围的函数,你可以选择某个月,某一天,某一年,某个小时,
某一分钟,某一秒,甚至某一毫秒内输入的记录。但是,如果你使用LIKE 来匹配秒或毫秒
,你首先需要使用函数CONVERT()把日期和时间转换为更精确的格式
 
接受答案了.
 
后退
顶部