【发布时间】:2016-01-28 00:43:00
【问题描述】:
我在数据库表中有两个名字:
- 死亡日期
- birth_date
我已经根据sql表中这两个名字的值设置了生日计算,代码如下:
$sql .= "FLOOR((TO_DAYS(GREATEST(IF(decease_date='0000-00-00',CURRENT_DATE,decease_date),IFNULL(decease_date,CURRENT_DATE))) - TO_DAYS(birth_date)) / 365) AS age";
我已经通过jDateTime 方法将 localDate 设置为另一个日历,即波斯日历:
代码如下:
public static function localDate($date = "")
{$local = "";
date_default_timezone_set('Asia/Tehran');
switch (strlen($date))
{default: // Ymd
{
if (( $date < '19700101'))
{
$local = $date;
break;
}
else
{
header('Content-Type: text/html; charset=UTF-8');
require_once dirname(__FILE__) . '/jdatetime.class.php';
$local = jDateTime::date("l j F Y", strtotime($date), true, true, 'Asia/Tehran');
break;}
}
break;}
return $local;}
问题是sql中的CURRENT_DATE,它将根据公历而不是波斯历中的CURRENT_DATE计算当前日期。
这就是为什么当我们在公历和波斯历中设置生日时,我的代码将根据公历计算患者年龄。
这是两个不同日历日期的计算示例:
问:如何在基于波斯历的 SQL 中设置当前日期?
提前致谢。
【问题讨论】:
标签: php sql sql-server date select