我想只展示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
- 我想展示Hijri年,就像我们只展示下面的阳历年
一样 醇>
select year(GETDATE())
output
------
2017
**Expecting output**
1438 (if I give Gregorian Date, it should display only Gregorian Year)
答案 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