【问题标题】:Update birthdate incase the date is Hijri by the value of converting hijri birthdate to Gregorian如果日期是回历,则通过将回历生日转换为公历的值更新出生日期
【发布时间】:2015-09-30 04:37:10
【问题描述】:

表格包含许多记录,在 BirthDate 列中有回历日期值和公历值,所以请如何通过将回历日期转换为公历日期的值来更新 Birthdate 谢谢 我试过这个脚本,但它不起作用 - 我的意思是没有改变 - 虽然我得到了

(18422 行受影响)

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

【问题讨论】:

  • birthdate 是什么数据类型?
  • 好吧,即使UPDATE member SET birthday = birthday 也会给出“(受影响的18422 行)”。你查询的实际效果是什么?它是否将任何记录设置为错误的值?
  • 没有变化,所有记录的生日列都保持原样,这意味着它仍然是回历日期,具有相同的旧值,生日类型是日期

标签: sql gregorian-calendar hijri


【解决方案1】:

试试下面的代码,它将生日列记录转换为回历格式:

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

更新会员 set BIRTHDATE = CONVERT(datetime,birthdate,131) --- [公历日期到回历日期]

有几个关于这个的博客,比如这个:http://blogs.msdn.com/b/wael/archive/2007/04/29/sql-server-hijri-hijra-dates.aspx

【讨论】:

  • 我在问这个问题之前浏览了这个页面,它并没有解决我的问题,顺便说一下,我没有收到任何错误消息,而是收到记录更新消息,谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
  • 2015-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-21
相关资源
最近更新 更多