【问题标题】:Get Date in SQL Query在 SQL 查询中获取日期
【发布时间】:2019-12-14 18:48:17
【问题描述】:

在我的代码中,我必须选择 SQL 查询运行的开始日期和结束日期。我必须从日期选择器获取开始和结束日期才能显示值。下面是我的代码:有什么想法吗?

include 'DBController.php';

$db_handle = new DBController();
$start_date = $_GET['start_date'];
$end_date  = $_GET['end_date'];

$productResult = $db_handle->runQuery("SELECT outlets.outletname,outlets.barcode,invoiceissued.invoiceno,invoiceissued.total_amount,invoiceissued.VATAmount,invoiceissued.date_created,outlets.businessregistrationno,outlets.vat 
FROM `invoiceissued` , outlets 
WHERE invoiceissued.outletid = outlets.outletsid and `date_created` 
BETWEEN ('".$start_date."') AND ('".$end_date."')");

<body>
     Start date : <input type="date" id="start_date" name="start_date"/>
                    End date : <input type="date" id="end_date" 
      name="end_date" />   
</body>

【问题讨论】:

  • 您是如何将日期存储在数据库中的?
  • 您的实际问题是什么?你应该使用准备好的语句。现在你很容易受到 sql 注入攻击。
  • 日期格式为 2019-07-01 我的问题是在我的表单中我必须选择开始和结束日期获取值以便将值插入 $start_date 并运行查询跨度>
  • Will 会用他的问题给你一个提示,取决于日期如何存储在你的数据库中,你应该格式化 $start_date/$end_date
  • 值存储是 2019-07-06 但希望在文本框中输入的值在变量 $start_date 和 $end_date 中发布并运行 sql 查询

标签: php sql date


【解决方案1】:

假设:

 $start_date = $_GET['start_date']; // is string - 2018-03-15
 $end_date  = $_GET['end_date']; // is string -2018-03-20

您需要执行以下操作:

$start_date = strtotime($_GET['start_date']);
$formatedStartDate = date("Y/m/d H:i:s", $start_date);// or whatever format you need

$end_date = strtotime($_GET['end_date']); 
$formatedEndDate = date("Y/m/d H:i:s", $end_date);// or whatever format you need

首先使用strtotime() 将字符串转换为时间戳,然后使用date() 格式化此时间戳

【讨论】:

    【解决方案2】:

    你需要把它分成两部分

    1. 在 HTML 中显示日期选择器
    2. 从日期选择器中获取开始日期结束日期,然后进行 ajax 调用以运行您的 sql 查询

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-07
      • 1970-01-01
      • 2021-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多