Sql Ansi для управления значениями DateTime - PullRequest
1 голос
/ 16 января 2009

Я разрабатываю систему с несколькими базами данных.
Я хочу разницу между двумя датами в секундах.

В SQL Server я получил:
DATEDIFF(second,stardate,enddate)
В MySql :
TIME_TO_SEC(TIMEDIFF(stardate,enddate))

Мой вопрос:
Есть ли в Sql Ansi функции для управления значениями DateTime?
Т.е.: есть функции datetime, общие для всех баз данных?

1 Ответ

2 голосов
/ 16 января 2009

Согласно SQL: 1999, date1-date0 должен давать вам значение типа INTERVAL, структуру, из которой вы сможете извлечь YEAR, MONTH, DAY и т. Д.

Я никогда не использовал это, и я не думаю, что это широко поддерживается (хотя я, возможно, не в курсе). Если вы выполняете арифметику времени на уровне базы данных и хотите быть совместимым с несколькими СУБД, обычное решение состоит в том, чтобы просто использовать целочисленные временные метки (любого разрешения, но время Unix является обычным) и простую старую целочисленную арифметику, которая является абсолютно надежной -platform.

...