任何人都知道如何从日期时间戳中提取日期作为where子句的一部分吗?
例如
select *
from tableA
where date between '01/08/2009' and '31/08/2009'
(日期是时间戳!)
非常感谢, 菲奥娜
答案 0 :(得分:5)
如果这是sql server,那是不可能的。 timestamp data type的名称具有误导性,因为它不存储任何类型的日期信息。它所持有的是一个顺序值,允许您建立记录顺序(例如,项目A是在项目B之前创建的),因此您在该列中没有足够的信息来了解该行的创建日期。< / p>
由于我提供的链接是特定于Sql Server 2000的,因此请查看此链接以获取有关SQL Server 2008的信息:
http://msdn.microsoft.com/en-us/library/ms182776.aspx
时间戳是 rowversion 数据类型的同义词,并受数据类型同义词的行为影响。在DDL语句中,尽可能使用 rowversion 而不是时间戳。
要在Sql Server中构建实时时间戳列,请使用DateTime(或DateTime2)数据类型,并将其默认值设置为getdate()
或current_timestamp
。
答案 1 :(得分:3)
如果是真正的日期时间值,而不是TIMESTAMP / ROWVERSION,这是二进制(8)......
SELECT DATEADD(DAY, DATEDIFF(DAY, 0, @MyValue), 0)