插入帐户年龄 MYSQL 查询


insert age of account MYSQL query

找到两个日期start_dateaccount_add_date的差异,然后插入到名为account_age的列中的最佳方法是什么?

我需要的是让用户选择一个start_date说它的一月。

然后他们添加的日期account_add_date说三月。

差额是 2 个月,所以在account_age将是 2,

那么在四月,2将是3。5月4日、6月5日等

有人知道怎么做吗?

我当前的插入查询模型

 function create_bank()
{
    $this->load->helper('date');
    $new_bank_acc_insert_data = array(
        'bank_name' => $this->input->post('bank_name'),
        'interest' => ($this->input->post('interest') / 100),
        'start_amount' => $this->input->post('start_amount'),
        'length' => $this->input->post('length'),
        'start_date' => date('Y-m-d',strtotime($this->input->post('start_date'))),
        'mem_id' => $this->session->userdata('id'),
        'account_add_date' => $this->current_date()
    );
    $insert = $this->db->insert('bank', $new_bank_acc_insert_data);
    return $insert;
}

查找帐户年龄的想法

SELECT DATEDIFF('start_date','account_add_date')
SELECT     
(
   12* (YEAR(account_add_date) - YEAR(start_date)) + 
          (MONTH(account_add_date) - MONTH(start_date))
) AS differenceInMonth
FROM
YOUR_TABLE

尽管DATEDIFF函数返回两个日期(以天为单位)的差异,但与月份的差异相比更准确

解释:

例:

start_date = 2014 March
account_add_date = 2015 January
YEAR(account_add_date) = 2015
YEAR(start_date) = 2014
MONTH(account_add_date) = 1
MONTH(start_date) = 3
So according to the query:
12 * (2015-2014) + (1-3) = 12 * 1 - 2 = 10 (Months)