如何在SQL查询中选择部分时间戳

问题描述:

在我正在使用的数据库中,我只想从特定时间戳字段中选择年份。特别是,我希望从这个数据库列中选择独特的年份。例如,如果"ModifyTimeStamp"字段中的所有时间戳都是2002年或2006年的时间戳,我只想返回“2002”和“2006”的结果。如果这是不可能的,我会满足于得到一系列'2002'和'2006'混合的结果,并在稍后解析它。如何在SQL查询中选择部分时间戳

到目前为止我所能得到的所有工作都是"Select ModifyTimeStamp from Table" - 我所有的解析尝试都失败了。我开始阅读关于SQL的extract命令,但我相信它仅适用于PostgreSQL。

任何建议非常感谢!

编辑:得到了答案,感谢很多datagod和马克。我一直在寻找最终被代码:

"Select distinct YEAR(ModifyTimeStamp) from Table"

+0

哪个数据库? (另外,随机信息:SQL服务器中的'timestamp'与日期或时间无关;-) – 2011-04-27 18:30:16

+0

对不起,忘了指定。 MySQL数据库 – pghprogrammer4 2011-04-27 18:37:00

你不指定RDBMS(数据库服务器)你使用,但大多数数据库确实有日期处理功能内置:

  • 的MySQL/SQL服务器:

    select YEAR(modifytimestamp) from yourtable 
    
  • 访问/ SQL服务器:

    select DatePart(year, modifytimestamp) from yourtable 
    
  • 甲骨文:

    select TO_CHAR(modifytimestamp, 'YYYY') from yourtable 
    

试试这个

select distinct datepart(yy,TheDate) from YourTable
+1

这适用于MS SQL Server,但其他RDBMS将具有相似的函数调用。 – 2011-04-27 18:30:26

+0

参考:[SQL Server(2008)datepart](http://msdn.microsoft.com/en-us/library/ms174420.aspx) – 2011-04-27 18:30:51

+1

谢谢datagod。我的实际命令最后有点不同,但是你让我用“distinct”关键字进入正确的轨道。不能相信我在我的搜索中错过了... – pghprogrammer4 2011-04-27 18:38:37