MYSQL - 当日期超过1年时更新行

时间:2016-01-26 02:55:53

标签: mysql datetime leap-year

如果DateTimeAdded为1年或更长时间,我有一个查询能够更新该行。但我发现它在闰年不起作用。有人有更好的建议吗?

<?php

$accessID = "xxxxx";
$secretKey = "xxxxx";
// Set your expires times for several minutes into the future.
// An expires time excessively far in the future will not be honored by the Mozscape API.
$expires = time() + 300;
// Put each parameter on a new line.
$stringToSign = $accessID."\n".$expires;
// Get the "raw" or binary output of the hmac hash.
$binarySignature = hash_hmac('sha1', $stringToSign, $secretKey, true);
// Base64-encode it and then url-encode that.
$urlSafeSignature = urlencode(base64_encode($binarySignature));

$cols = "103079215108";
// Put it all together and you get your request URL.
$requestUrl = "http://lsapi.seomoz.com/linkscape/url-metrics/?Cols=".$cols."&AccessID=".$accessID."&Expires=".$expires."&Signature=".$urlSafeSignature;
// Put your URLS into an array and json_encode them.
$batchedDomains = array('xxxxxxxx.com');
$encodedDomains = json_encode($batchedDomains);
// Use Curl to send off your request.
// Send your encoded list of domains through Curl's POSTFIELDS.
$options = array(
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POSTFIELDS     => $encodedDomains
    );
$ch = curl_init($requestUrl);
curl_setopt_array($ch, $options);
$content = curl_exec($ch);
curl_close( $ch );
$contents = json_decode($content);

print_r($contents);


$pageAuthority=$contents->upa;
$domainAuthority = $contents->pda;
$theUrl = $contents->uu;

?>

<html>
<body>
    <h1>MOZcape API</h1>
<ul>
    <li>URL: <?php echo $theUrl; ?></li>
    <li>PA: <?php echo $pageAuthority; ?></li>
    <li>DA: <?php echo $domainAuthority; ?></li>

    </ul>
    </body>
</html>

1 个答案:

答案 0 :(得分:0)

要识别超过一年的DateTimeAdded值的行,您可以执行以下操作:

 ... WHERE DateTimeAdded < NOW() + INTERVAL -1 YEAR

<强>后续

演示:

SELECT NOW() + INTERVAL 0 HOUR AS `now`
     , DATE(NOW()) + INTERVAL -1 YEAR AS `year_ago`
     , t.DateTimeAdded
     , t.DateTimeAdded < DATE(NOW()) + INTERVAL -1 YEAR AS `compare`
  FROM ( SELECT '2015-01-24 11:00:00' AS `DateTimeAdded`
          UNION ALL
         SELECT '2015-01-25 13:00:00'
          UNION ALL
         SELECT '2015-01-26 14:00:00'
       ) t  

返回:

NOW                  year_ago    DateTimeAdded        compare  
-------------------  ----------  -------------------  -------
2016-01-25 22:11:56  2015-01-25  2015-01-24 11:00:00        1
2016-01-25 22:11:56  2015-01-25  2015-01-25 13:00:00        0
2016-01-25 22:11:56  2015-01-26  2015-01-26 14:00:00        0