Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如果日期是Hijri,则通过将Hijri生日转换为公历的值来更新出生日期_Sql_Gregorian Calendar_Hijri - Fatal编程技术网

Sql 如果日期是Hijri,则通过将Hijri生日转换为公历的值来更新出生日期

Sql 如果日期是Hijri,则通过将Hijri生日转换为公历的值来更新出生日期,sql,gregorian-calendar,hijri,Sql,Gregorian Calendar,Hijri,表中包含许多在BirthDate列中具有Hijri date值和Gregorian值的记录,因此请了解如何通过将Hijri date转换为Gregorian值来更新BirthDate 谢谢 我试过这个脚本,但它不起作用-我的意思是没有改变-虽然我得到 (受影响的18422排) 请尝试以下代码,它将把生日列记录转换为Hijri格式: 更新成员 set BIRTHDATE=CONVERT(VARCHAR(100),BIRTHDATE,131)--[Hijri日期到公历日期] 更新成员 set BIR

表中包含许多在BirthDate列中具有Hijri date值和Gregorian值的记录,因此请了解如何通过将Hijri date转换为Gregorian值来更新BirthDate 谢谢 我试过这个脚本,但它不起作用-我的意思是没有改变-虽然我得到

(受影响的18422排)
请尝试以下代码,它将把生日列记录转换为Hijri格式:

更新成员 set BIRTHDATE=CONVERT(VARCHAR(100),BIRTHDATE,131)--[Hijri日期到公历日期]

更新成员 set BIRTHDATE=CONVERT(datetime,BIRTHDATE,131)---[公历日期到希吉日]


关于这一点,有几个博客,比如这样一个:

什么数据类型是
生日
?是的,即使
更新成员集生日=生日
也会给出“(18422行受影响)”。您的查询的实际效果如何?它是否将任何记录设置为错误的值?没有更改,列birthdate的所有记录都保持不变,这意味着它仍然在hijri date中,具有相同的旧值,birthdate类型为date我在问这个问题之前浏览了这一页,它并没有解决我的问题,顺便说一下,我没有收到任何错误消息,相反,我收到了更新记录的信息,谢谢
UPDATE MEMBER
SET BIRTHDATE = case when (SUBSTRING(cast(birthdate as nvarchar), 1, 2) ='14') 
or 
(SUBSTRING(cast(birthdate as nvarchar), 1, 2) ='13')
then 
(SELECT CONVERT(date, birthdate , 131) ) 
else
 birthdate
 end