yyyymmdd texto numero formato fecha ejemplos convertir convert sql sql-server sql-server-2012

sql - texto - Convertir GETDATE() en fecha Hijri en aaaammdd



convertir fecha sql (6)

Estoy tratando de obtener Hijri GETDATE () y convertirlo a este formato aaaammdd

Ya he probado este script

SELECT CONVERT(VARCHAR(10), GETDATE(), 131)

pero me da este formato (16/06/1438) y lo que realmente necesito es (1438/06/16)


Otra opción es convert a varchar luego date luego varchar nuevo.

El uso de format() with ''ar-SA'' parece regresar 1 día antes que usando convert() con el estilo 131 .

select Method=''multiconvert'' ,conversion = convert(varchar(10) ,convert(date,convert(varchar(12),getdate(),131),103),112) union all select ''format'' , format ( getdate(), ''yyyyMMdd'', ''ar-SA'' ) union all select ''style131'' ,convert(varchar(12),getdate(),131)

Demostración de rextester: http://rextester.com/LIX82417

devoluciones

+--------------+--------------+ | Method | conversion | +--------------+--------------+ | multiconvert | 14380616 | | format | 14380615 | | style131 | 16/06/1438 | +--------------+--------------+


Prueba con 120:

SELECT CONVERT(VARCHAR(10), GETDATE(), 120)


Puedes hacerlo usando la siguiente consulta:

SELECT REPLACE(CONVERT(VARCHAR(10), GETDATE(), 120),''-'',''/'')


SQL Server no ofrece una gran cantidad de opciones de formato para esas fechas, por lo que solo debe construirlo usted mismo:

SELECT (RIGHT(CONVERT(VARCHAR(10), GETDATE(), 131), 4) + ''/'' + CONVERT(VARCHAR(5), GETDATE(), 131) ) as hj_yyyymmdd

Oops. Idea correcta, implementación incorrecta:

SELECT (RIGHT(CONVERT(VARCHAR(10), GETDATE(), 131), 4) + SUBSTRING(CONVERT(VARCHAR(10), GETDATE(), 131), 3, 4) + LEFT(CONVERT(VARCHAR(10), GETDATE(), 131), 2) ) AS hj_yyyymmdd


Si tiene SQL Server 2012 y superior,

SELECT FORMAT(GETDATE()+1,''yyyy/MM/dd'',''ar'')

Le dará el siguiente resultado para la fecha 2017/03/14

1438/06/16


Use la consulta a continuación:

SELECT FORMAT ( GETDATE(), ''yyyy/MM/dd'', ''ar-SA'' )