mysql数据驱动问题hour_day_of 0 ->1

本文探讨了在使用JDBC6以上版本时遇到的hour_day_of0->1错误,解释了该错误的原因,并提供了两种解决方案:一是修改MySQL配置文件,二是调整连接字符串中的时区参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

报错hour_day_of 0 ->1

1.问题

	因为采用jdbc6以上的版本,在查询封装数据的时候偶尔回出现hour_day_of 0 ->1 这种错误,
	意思是天数没有等于0的,日期错误;

2.原因

	jdbc6以上的版本在写驱动连接字符串的时候要设置时区即:severTimezone;一般地,
	国内设置为Asia/Shanghai  即上海时区,就可以解决问题,但有时候还是会碰到,
	尤其是在使用Apache的QueryRunner方式封装数据的时候,还是会碰到

3.解决方案

针对以上问题及原因接解决方式有两种:

  1. 修改mysql 配置文件 :修改mysql,修改方式可参考这篇文章 https://www.cnblogs.com/mracale/p/6064447.html
  2. 修改连接字符串参数serverTimezone 将serverTimezone设置为GMT%2B8,(GMT为格林尼治标准时间,即本初子午线的时间,GMT%2B8表示GMT加上8小时 就是北京时间)
下面这段如何改成 mysqli? <?php //die("2009年3月14日00:00-08:00为系统维护时间,网站部分服务暂停。"); //db_sybase.php if (!defined("__DBCONN_PHP")) { define("__DBCONN_PHP", 1); class dbConn{ var $db_host; var $db_name; var $db_user; var $db_passwd; var $connID; var $sql; var $result; function dbConn($dbhost='localhost', $dbname='main', $dbuser='sa', $dbpasswd=''){ $this->db_host = $dbhost; $this->db_name = $dbname; $this->db_user = $dbuser; $this->db_passwd = $dbpasswd; $this->connID = @mysql_connect($this->db_host, $this->db_user, $this->db_passwd); mysql_query("SET NAMES UTF8"); if(empty($this->connID)){ die("Database is busy now, please try later."); } if(! @mysql_select_db($this->db_name, $this->connID)){ die("Database is busy now, please try later."); } } function selectDB($dbname='main'){ if(! @mysql_select_db($dbname, $this->connID)){ die("Database is busy now, please try later."); } $this->db_name = $dbname; } function execute($sql){ $this->result = @mysql_query($sql, $this->connID) or die("Database encountered an error.\n\n$sql\n"); // or die("Database encountered an error.\n<!--\n$sql\n-->"); $this->sql = $sql; return $this->result; } function getRowCount(){ return @mysql_num_rows($this->result); } function getResult(){ return $this->result; } function fetch(){ return @mysql_fetch_array($this->result); } function fetch_res($result){ return @mysql_fetch_array($result); } function seek($pos){ if($pos > 0 && $pos < $this->getRowCount()){ return @mysql_data_seek($this->result,$pos); } return false; } function getNowTime(){ return 'SYSDATE()'; } function getDateTime($date_str, $has_time = false){ $alpha_month['Jan'] = 1; $alpha_month['Feb'] = 2; $alpha_month['Mar'] = 3; $alpha_month['Apr'] = 4; $alpha_month['May'] = 5; $alpha_month['Jun'] = 6; $alpha_month['Jul'] = 7; $alpha_month['Aug'] = 8; $alpha_month['Sep'] = 9; $alpha_month['Oct'] = 10; $alpha_month['Nov'] = 11; $alpha_month['Dec'] = 12; $ret = "1900-00-00"; if(!isset($date_str) || $date_str == ""){ if($has_time){ $ret .= " 00:00:00"; } return $ret; } $lc_year = substr($date_str, 7, 4); $lc_month = substr($date_str, 0, 3); $lc_day = substr($date_str, 4, 2); $lc_month = $alpha_month[$lc_month]; $ret = "$lc_year-$lc_month-$lc_day"; if($has_time){ $lc_hour = substr($date_str, 12, 2); $lc_min = substr($date_str, 15, 2); if(strlen($date_str) > 20) { $lc_sec = substr($date_str, 18, 2); } else { $lc_sec = "00"; } $ret .= " $lc_hour:$lc_min:$lc_sec"; } return $ret; } function close(){ mysql_close($this->connID); } }; }//__DBCONN_PHP ?>
06-10
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值