表格中有一列(REC_CREATE_TIMESTAMP),以格式YY-MM-DD顯示日期。我想選擇某個日期的最新(按時間)(比如說2011年8月31日)。第一列應該是hh24:mm:ss中的時間戳,其餘的應該是該表的所有列(*)。我該怎麼做?SQL中日期的最近時間
使用Oracle 2.1.1.64
REC_CREATE_TIMESTAMP - NOT NULL - DATE
表格中有一列(REC_CREATE_TIMESTAMP),以格式YY-MM-DD顯示日期。我想選擇某個日期的最新(按時間)(比如說2011年8月31日)。第一列應該是hh24:mm:ss中的時間戳,其餘的應該是該表的所有列(*)。我該怎麼做?SQL中日期的最近時間
使用Oracle 2.1.1.64
REC_CREATE_TIMESTAMP - NOT NULL - DATE
SELECT * FROM Table WHERE REC_CREATE_TIMESTAMP IN
(
SELECT
MAX(REC_CREATE_TIMESTAMP) as REC_CREATE_TIMESTAMP
FROM
Table
WHERE
TO_CHAR(REC_CREATE_TIMESTAMP, 'YYYYMMDD') = '20110831'
)
EDITED for Oracle
對於廣義的答案可以用數據,而不是個別日期的設置工作...
WITH
sequenced_data AS
(
SELECT
ROW_NUMBER() OVER (PARTITION BY TRUNC(rec_create_timestamp) ORDER BY rec_create_timestamp DESC) AS daily_sequence_id,
TRUNC(rec_create_timestamp) as rec_create_date,
*
FROM
yourData
)
SELECT
*
FROM
sequenced_data
WHERE
daily_sequence_id = 1
AND rec_create_date = '20110831'
SELECT *
FROM tableName As tbl1
WHERE EXISTS
(
SELECT NULL
FROM tableName as tbl2
WHERE
tbl2.rec_create_timestamp > '2001-08-30'
tbl2.rec_create_timestamp < '2001-09-01'
HAVING MAX(tbl2.rec_create_timestamp) = tbl1.rec_create_timestamp
)
您使用的是什麼RDBMS?什麼版本?你有什麼嘗試? – 2011-09-14 18:15:50
什麼RDBMS? (SQL Server,MySQL,ORACLE等)以及REC_CREATE_TIMESTAMP字段的數據類型是什麼? – MatBailie
Oracle 2.1.1.64。我不知道如何找出數據類型。請告知如何。 – Prostak