Ein Datentyp definiert die Merkmale eines Datenelements und legt fest, wie die Daten verarbeitet werden. ESQL unterstützt die sechs im Folgenden aufgeführten Datentypen. Daten, die aus Datenbanken abgerufen, in einer selbst-definierenden Nachricht empfangen oder in einem Nachrichtenmodell definiert werden (unter Verwendung der MRM-Datentypen), werden einem der ESQL-Basistypen zugeordnet, wenn sie in ESQL-Ausdrücken verarbeitet werden.
Innerhalb eines Brokers enthalten die Felder einer Nachricht Daten, die einem bestimmten Datentyp zugeordnet sind. Für die Verarbeitung einer Nachricht können auch temporäre Variablen verwendet werden. Vor der Verwendung der Variablen müssen Sie diese mit einem Datentyp deklarieren. Der Datentyp einer Variablen ist vorgegeben; der Versuch, einer Variablen einen Wert eines anderen Datentyps zuzuweisen, führt entweder zu einer impliziten Umsetzung oder zu einer Ausnahmebedingung. Für Nachrichtenfelder dagegen ist kein bestimmter Datentyp vorgegeben; ihnen können Werte unterschiedlicher Typen zugeordnet werden. Das Feld übernimmt ganz einfach den neuen Wert und Datentyp.
Es kann nicht immer vorhergesagt werden, welchen Datentyp das Ergebnis der Auswertung eines Ausdrucks hat. Dies liegt daran, dass Ausdrücke ohne Verweis auf ein Nachrichtenschema kompiliert werden, was dazu führt, dass bestimmte Tippfehler erst während der Laufzeit erkannt werden.
ESQL definiert folgende Datenkategorien. Jede Kategorie enthält mindestens einen Datentyp.