Las fechas en el software son el horror (¡el horror!) sobre todo cuando cambiamos de un entorno a otro.
Voy a empezar este artículo harto de tener que googlear una y otra vez las mismas preguntas. Si alguien aporta algo bienvenido será (salvo que sea para decirme que no tengo n.p.i. :D)
UTC, GMT, TIMESTAMP UNIX ¿¿¿¿¿Pero qué hora es?????
- UTC (Tiempo Universal Coordinado) = GMT
- GMT = UTC (ver arriba y entrar en bucle infinito o bien hacer clic en el enlace de la Wikipedia)
- Tiempo Unix: Los segundos que han pasado desde 1 de Enero de 1970 00:00:00 UTC, sin contar segundos intercalares (haz clic en el enlace para saber más)
- Tiempo POSIX = Tiempo Unix
¿Cuál es el formato por defecto?
- MySQL: YYYY-MM-DD hh:mm:ss
- Oracle: Lo que diga NLS_DATE_FORMAT. Es posible cambiarlo para una sesión con: ALTER SESSION SET NLS_DATE_FORMAT = ‘YYYY MM DD’;
- PHP: Sin objetos, se suele trabajar con Tiempo Unix.
- time() – Timestamp actual
- string date ( string $format [, int $timestamp ] ) – Formatea un timestamp
- int mktime ([ int $hour = date(«H») [, int $minute = date(«i») [, int $second = date(«s») [, int $month = date(«n») [, int $day = date(«j») [, int $year = date(«Y») [, int $is_dst = -1 ]]]]]]] ) – Devuelve el timestamp de una fecha
Operaciones con fechas
Oracle
- Comparar dos fechas (teniendo en cuenta la hora): … WHERE fecha BETWEEN fecha1 AND fecha2;
- Comparar dos fechas (ignorando la hora):
- … WHERE trunc(fecha, ‘d’) >= trunc(fecha1, ‘d’); — Truncando al día (también se puede hacer al año)
- … WHERE to_char(fecha, ‘J’) >= to_char(fecham ‘J’) — Usando el calendario Juliano
- Sumar días: SELECT fecha + n_dias FROM DUAL;
- Sumar horas, minutos, etc: SELECT fecha + n_horas / 24 + n_minutos / 1440 FROM DUAL;
Seguiremos informando.
Deja una respuesta