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'' )