sql >> Base de Datos >  >> RDS >> Oracle

Cómo agregar el indicador AD/BC a una fecha en Oracle

Al usar TO_CHAR() función para formatear un valor de fecha y hora en Oracle Database, puede agregar el indicador AD/BC simplemente agregando A.D. o BC a su modelo de formato.

Oracle luego muestra el indicador apropiado, dependiendo de si el valor de la fecha es AD o BC.

Puede proporcionarlo en mayúsculas o minúsculas, y con o sin puntos (por ejemplo, A.D. , A.D. ad , a.d , etc). Oracle luego mostrará el indicador como se especifica.

Ejemplo

Aquí hay un ejemplo para demostrarlo:

SELECT 
    TO_CHAR(date '2030-12-30', 'DD-MM-YYYY AD')
FROM DUAL;

Resultado:

30-12-2030 AD

En este caso, la fecha es AD, por lo que el resultado tiene A.D. adjunto.

AD vs BC

Oracle determina si es AD o BC y muestra el indicador aplicable.

Esto es lo que sucede cuando cambio la fecha a un valor BC:

SELECT 
    TO_CHAR(date '-2030-12-30', 'DD-MM-YYYY AD')
FROM DUAL;

Resultado:

30-12-2030 BC

El indicador resultante es BC, aunque mi cadena de formato es A.D. .

Mayúsculas vs Minúsculas

Cambiar el caso del elemento de formato cambia el caso del resultado:

SELECT 
    TO_CHAR(date '2030-12-30', 'DD-MM-YYYY AD') AS "Uppercase",
    TO_CHAR(date '2030-12-30', 'DD-MM-YYYY ad') AS "Lowercase",
    TO_CHAR(date '2030-12-30', 'DD-MM-YYYY Ad') AS "Mixed"
FROM DUAL;

Resultado:

       Uppercase        Lowercase            Mixed 
________________ ________________ ________________ 
30-12-2030 AD    30-12-2030 ad    30-12-2030 Ad   

Puntos vs No Puntos

Puedes incluir puntos si lo prefieres:

SELECT 
    TO_CHAR(date '2030-12-30', 'DD-MM-YYYY A.D.') AS "Uppercase",
    TO_CHAR(date '2030-12-30', 'DD-MM-YYYY a.d.') AS "Lowercase",
    TO_CHAR(date '2030-12-30', 'DD-MM-YYYY A.d.') AS "Mixed"
FROM DUAL;

Resultado:

         Uppercase          Lowercase              Mixed 
__________________ __________________ __________________ 
30-12-2030 A.D.    30-12-2030 a.d.    30-12-2030 A.D.    

Aunque, tenga en cuenta que esto afectó el indicador de mayúsculas y minúsculas.

Fecha y hora de hoy

Aquí, paso SYSDATE para usar la fecha actual:

SELECT 
    TO_CHAR(SYSDATE, 'DD-MM-YYYY A.D.')
FROM DUAL;

Resultado:

29-08-2021 A.D.