El tipo duration tiene disponibles operadores de comparación y aritméticos, y algunos ya los hemos visto aplicados:
Operadores aritméticos
- Operador suma: +
- Suma de un valor de tipo time y otro de tipo duration (o viceversa)
- Suma de un valor de tipo date y otro de tipo duration (o viceversa)
- Suma de un valor de tipo datetime y otro de tipo duration (o viceversa)
- Suma de un valor de tipo datetimezone y otro de tipo duration (o viceversa)
- Suma de un valor de tipo duration y otro del mismo tipo, para devolver un valor también de tipo duration
#duration(1, 6, 30, 0) + #duration(2, 1, 45, 59), que devuelve 3.08:15:59
- Operador resta: -
- Diferencia de un valor de tipo time y otro de tipo duration
- Diferencia de un valor de tipo date y otro de tipo duration
- Diferencia de un valor de tipo datetime y otro de tipo duration
- Diferencia de un valor de tipo datetimezone y otro de tipo duration
- Diferencia de un valor de tipo duration y otro del mismo tipo, para devolver un valor también de tipo duration
#duration(1, 6, 30, 0) - #duration(2, 1, 45, 59), que devuelve -19:15:59
Obsérvese que, salvo para este último caso en el que restamos un valor de tipo duration a otro del mismo tipo, en una diferencia la duración siempre debe ser el sustraendo.
- Operador producto: *
#duration(2, 1, 45, 59) * 3, que devuelve 6.05:17:57
- Operador cociente: /
#duration(2, 1, 45, 59) / 3, que devuelve 0.16:35:19.6666666
Operadores de comparación
- Operador mayor que: >
- Operador mayor o igual que: >=
- Operador menor que: <
- Operador menor o igual que: <=
- Operador de igualdad: =
- Operador de desigualdad: <>