从日期时间戳中提取日期

时间:2009-09-07 16:45:59

标签: sql sql-server date timestamp

任何人都知道如何从日期时间戳中提取日期作为where子句的一部分吗?

例如

 select *
 from tableA
 where date between '01/08/2009' and '31/08/2009'

(日期是时间戳!)

非常感谢, 菲奥娜

2 个答案:

答案 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)