我是PHP和Javascript的初学者,所以我很难比较SELECT
请求中的两个日期:
<?php
require 'db.php';
$sql = "SELECT * FROM shortcode WHERE invalid_from_shortcode < Date()";
$result = pg_query($sql);
if (!$result) {
echo "Problem with query " . $query . "<br/>";
echo pg_last_error();
exit();
}
?>
我正在尝试仅选择[invalid_from_shortcode]列低于当前日期的'shortcodes'。
我不知道如何获取当前日期以及结构是否正确。
答案 0 :(得分:3)
<?php
require 'db.php';
$sql = "SELECT * FROM shortcode WHERE invalid_from_shortcode < NOW()";
$result = pg_query($sql);
if (!$result) {
echo "Problem with query " . $query . "<br/>";
echo pg_last_error();
exit();
}
?>
Date()
是一个php函数。在Mysql / PostgreSQL中,您必须使用NOW()
答案 1 :(得分:0)
你想使用NOW()而不是DATE()。
答案 2 :(得分:0)
可能您正在寻找CURDATE()。
$sql = "SELECT * FROM shortcode WHERE DATE(invalid_from_shortcode) < CURDATE()";
答案 3 :(得分:0)
使用
NOW() Returns the current date and time
答案 4 :(得分:0)
您应该使用NOW()函数而不是date(),并且需要以合适的格式enter link description here转换日期,您可以访问此链接以转换日期格式
答案 5 :(得分:0)
... $sql = "SELECT * FROM shortcode WHERE invalid_from_shortcode < Date()"; ...
在SQL字符串中看不到像Date()
这样的PHP函数。传递值或使用等效的Postgres函数,如@pr1nc3 already suggested。
但是,虽然您没有透露invalid_from_shortcode
的实际数据类型,但不清楚now()
是否可以作为等效函数。它返回的当前timestamp with time zone
与当前日期有显着差异 - 实际上相当于根据当前timestamptz
设置截断到00:00的当前timezone
。您可能需要CURRENT_DATE
(与now()::date
相同)。相关:
除此之外:与其他两个答案不同,Postgres中没有 。这可能会让MySQL与Postgres混淆。CURDATE()