表的Created_time
列的值爲25-MAY-2012.10.12.320000 PM
。SQL時間戳查詢
我需要編寫一個查詢,顯示從table
XYZ因爲它是建築March
和April
月之間產生的所有字段,不可知的一年中他們都英寸
我想顯示記錄根據他們的id升序排列。
有人可以幫助我嗎?
表的Created_time
列的值爲25-MAY-2012.10.12.320000 PM
。SQL時間戳查詢
我需要編寫一個查詢,顯示從table
XYZ因爲它是建築March
和April
月之間產生的所有字段,不可知的一年中他們都英寸
我想顯示記錄根據他們的id升序排列。
有人可以幫助我嗎?
查看月份和年份功能。 如果CREATED_TIME是datetime類型:
select *
from TABLE
where month(Created_time) in (3, 4)
對使用未知dbms的問題的產品具體答案... – jarlh
如果您需要檢查Created_time
是否在任何一年的三月,那麼這個想法是做這樣的事情:
select *
from XYZ
where Created_time like '%-MARCH-%'
order by id;
或者,如果這不適用於您的column
類型,然後將其轉換爲varchar
。此外,還有一些RDBMS特定的function
可以幫助你,但是爲了更全面的回答,我需要知道你正在使用的RDBMS和的Created_time
。
編輯
正如Jarhl指出,EXTRACT應該使用在這種情況下,檢查了一個月。 Source,證明他是正確的說:
名稱
EXTRACT
從日期提取零件的ANSI SQL標量函數是 提取物。 ANSI SQL標準語法
ANSI SQL EXTRACT函數採用date_part和 計算爲日期時間值的表達式。 MySQL和Oracle和PostgreSQL的支持 ANSI SQL標準語法:
EXTRACT(date_part FROM expression)
根據評論,Created_time數據類型是TIMESTAMP(6)。 – jarlh
@jarlh謝謝你指出。我可能是錯的,但我認爲Oracle可以提供這樣的精確度。在這種情況下,可以使用to_char完成到文本數據的轉換。但是,如果我們在Oracle中,那麼可以使用EXTRACT獲取月份。來源:https://docs.oracle.com/cd/B28359_01/server.111/b28286/functions052.htm#SQLRF00639 –
EXTRACT甚至是在這種情況下使用的ANSI SQL函數!(但問題中指定的時間戳不符合ANSI SQL標準,所以誰知道哪些dbms OP正在使用...) – jarlh
什麼是列CREATED_TIME的數據類型? – JRG
你有什麼試過,這不是一個作業網站 – dbajtr
哪個RDBMS是爲了這個?請添加一個標籤來指定您是使用'mysql','postgresql','sql-server','oracle'還是'db2' - 或者其他的東西。 –