2011-04-27 67 views
9

在我正在使用的數據庫中,我只想從特定時間戳字段中選擇年份。特別是,我希望從這個數據庫列中選擇獨特的年份。例如,如果"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

回答

10

你不指定RDBMS(數據庫服務器)你使用,但大多數數據庫確實有日期處理功能內置:

  • 的MySQL/SQL服務器:

    select YEAR(modifytimestamp) from yourtable 
    
  • 訪問/ SQL服務器:

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

    select TO_CHAR(modifytimestamp, 'YYYY') from yourtable 
    
8

試試這個

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