epoch-timestamp als standardwert

ich möchte in einer tabelle aus kompatibilitätsgründen in einer spalte einen unix-epoch als standardwert vergeben.

select(EXTRACT(EPOCH FROM now())) liefert aber einen epoch-wert mit nachkommastellen. liegt das am eingestellten zeitformat?

gibts eine elegante (und performante) lösung für now als ganzzahligen epoch?

tom

Ob sie performant sind, musst du selber testen:

SELECT CAST((EXTRACT(EPOCH FROM now())) AS INT);
SELECT CEIL(EXTRACT(EPOCH FROM now()));
SELECT ROUND(EXTRACT(EPOCH FROM now()));

Das war zu einfach.

jö nun, das war mir schon klar - aber ich mein halt, dass das schon viel aufwand ist um einen ganzzahligen epoch zu kriegen, der im schnitt rund 30 mal pro sekunde aufgerufen wird. meine frage war, ob es wirklich keine elegantere lösung gibt.

auf die gefahr hin jetzt gesteinigt zu werden:
wie teste ich die geschwindigkeit der drei genannten alternativen am sinnvollsten?

mir ist klar, dass ich das in perl 10.000 mal aufrufen kann und dann die zeit messen - aber mein bauch sagt mir, dass man das auch in einen simplen query verpacken und dann explainen lassen kann, oder?

thomas

30 Inserts pro Sekunde, oder 30 selects pro sekunde? Was willst Du optimieren?

mir ist klar, dass ich das in perl 10.000 mal aufrufen kann und dann die zeit messen - aber mein bauch sagt mir, dass man das auch in einen simplen query verpacken und dann explainen lassen kann, oder?

thomas

Der CAST braucht ganz sicher Zeit. Daher die Frage, was Du optimieren willst. Danach richtet sich dann, wann Du den CAST anwendest.

Andreas