Drupal 5.x dátumkezelés a node modulban

A Drupal node modulban a tartalmi elemek készítésének dátuma (szerzői dátum) az adatbázisban a {node} tábla created mezőben van tárolva. Ez egy Unix időbélyeg.

Ha SQL-ből akarjuk használni, akkor normál SQL-es időbélyeget kell készíteni ahhoz, hogy a szokásos formázó függvények működjenek rá. Például az alábbi SQL-lel lehet olvasható dátummá alakítani a created mező értékét:

SELECT
  to_char(timestamp with time zone 'epoch' + created * INTERVAL '1 second', 'YYYY-MM-DD') AS keszit_datum,
  title AS cim
FROM node
ORDER BY created DESC

Az alábbi SQL úgy rendezi sorba a tartalmakat, hogy az előttünk levők (azaz időben ezutániak) időrendi sorrendben legyenek, és ezeket kövesség az elmúlt dolgok időben visszafele:

SELECT
  to_char(timestamp with time zone 'epoch' + created * INTERVAL '1 second', 'YYYY-MM-DD') AS keszit_datum,
  title AS cim
FROM
  (SELECT n.created, n.title, CASE WHEN timestamp with time zone 'epoch' + created * INTERVAL '1 second' >= now() THEN 9000000000 - n.created ELSE n.created END AS creat
  FROM node n WHERE n.promote = 1 AND n.status = 1 ORDER BY creat DESC
  ) AS foo