2010-11-05 12 views
0

J'ai deux champs datetime ici: actual_delivery et scheduled_deliverySQL: Commander par combien plus grand que quelque chose?

Ce que je veux faire une ORDER BY sur est de savoir combien grande est que actual_deliveryscheduled_delivery. J'utilise MySQL localement et PostgreSQL en production, il doit donc fonctionner pour les deux.

+0

"J'utilise MySQL localement et PostgreSQL en production" - parce que ...? –

+1

@Mark, parce qu'il veut des choses portables: P – Unreason

+0

@Mark Je suis personnellement un gars MySQL, mais le serveur du client utilise PostgreSQL (sur lequel je n'ai aucun contrôle). La plupart des choses se passent bien entre les deux, mais je savais que cela pourrait être un cas limite donc je voulais spécifier qu'il fallait travailler entre les deux. – Shpigford

Répondre

3

Essayez ceci:

SELECT actual_delivery, scheduled_delivery, actual_delivery - scheduled_delivery as difference FROM tablename ORDER BY difference

+0

Parfait. Cela semble assez évident avec le recul. :) – Shpigford

4

Si je le fais dans SQL Server je calcule alors DATEDIFF(actual_delivery, scheduled_deliver) AS [DeliveryDifference] ordre par cette colonne calculée.

Une recherche rapide indique qu'il existe une fonction datediff dans MySQL, mais la syntaxe peut être légèrement différente dans PostgreSQL, vous devrez peut-être y créer votre propre fonction.