如何在SQL Server中仅显示Hijri年份?

时间:2017-07-12 13:18:48

标签: sql sql-server date stored-procedures

我想只展示Hijri年。如何在SQL SERVER中执行此操作

  

1.当我尝试用GETDATE()将Hijri转换为Gregorian时。它正确显示输出

SELECT CONVERT(nchar, GETDATE(), 131)
output
------
18/10/1438  4:02:48:407PM     

SELECT CONVERT(nchar, '2016-10-02 12:00:00.000', 131)
Output
------
2016-10-02 12:00:00.000       
  
      
  1. 我想展示Hijri年,就像我们只展示下面的阳历年
  2. 一样   
select year(GETDATE())
output
------
2017

**Expecting output**
1438 (if I give Gregorian Date, it should display only Gregorian Year)

3 个答案:

答案 0 :(得分:3)

示例

select right(convert(nvarchar(10), getdate(), 131),4) 

<强>返回

1438

如果需要,您可以将最终结果转换为INT

答案 1 :(得分:2)

我认为这是比子串更好的解决方案

DECLARE @DateTime AS DATETIME
SET @DateTime=GETDATE()
SELECT 
    FORMAT(@DateTime,'yyyy','ar')AS [Gregorian date to Hijri date]

output
-------
1438

答案 2 :(得分:1)

你可以使用substring之类的

select substring(CONVERT(varchar, GETDATE(),131), 7, 4)

输出:

1438