已经找到“” 的记录517条
SQL Server中SQL日期转换出错怎么解决?快米云

开发人员有时候使用类似下面SQL将字符串转换为日期时间类型,乍一看,这样的SQL的写法是没有什么问题的。但是这样的SQL其实有时候就是一个定时炸弹,随时可能出现问题(),下面简单对这种情况进行一个简单概括。

1
SELECTCONVERT(DATETIME,'2020-01-13 6:46:42');
SELECT CONVERT(DATETIME, '2020-01-13 6:46:42');

如果你将连接数据库的登录名的默认语言修改为Aribc,然后去执行上面SQL语句,就会遇到错误,为什么呢?

 

为什么上面SQL的日期转换出错了呢?其实是因为登录名修改默认语言后,会话对应的date_format变化了,从mdy变成了dmy,所以上面转换就报错了,有时候不报错,但是可能转换成一个错误日期,产生了逻辑错误,这个反而是一个跟糟糕的隐性错误。等你发现的时候,可能已经产生大量错误数据了。

SELECTsession_id
  ,program_name
  ,client_interface_name
  ,language
  ,date_format
FROMsys.dm_exec_sessions
WHEREsession_id = 53;

 

 

关于不同语言的默认date_format,可以使用下面命令查看:

1
sp_helplanguage'us_english'
sp_helplanguage 'us_english'

另外一种情况,如果当前会话使用SET命令修改过DATEFORMAT,也会遇到这个错误,如下所示:

1
2
3
SETDATEFORMAT DMY;
GO
SELECTCONVERT(DATETIME,'2020-01-13 6:46:42');

 

 

这种情况就比较复杂了,有可能是某一段SQL里面设置了DATEFORMAT,导致整个会话后面的日期格式全部变化了。所以上面这种SQL的“健壮性”就比较差,在平时就要避免写出这样的SQL,如果你使用这样的SQL,不管是会话的默认语言变化了,还是当前会话的DATEFORMAT变化了,都不会产生错误或逻辑错误。

1
SELECTCONVERT(DATETIME,'2020-01-13 6:46:42', 120)。
SELECT CONVERT(DATETIME,'2020-01-13 6:46:42', 120)。

平时遇到这种日期转换,就一定要明确指定转换格式,让其不要受会话的DATEFORMAT变化影响,书写健壮、可靠的SQL语句,下面这两个简单SQL的细微差别,也可判别一个人是否用有书写健壮性SQL的意识!

1
2
SELECTCONVERT(DATETIME,'2020-01-13 6:46:42');
SELECTCONVERT(DATETIME,'2020-01-13 6:46:42', 120)
DB数据库连接错误的分析与解决

不少新手用户,以为文件传上去就代表网站安装好了,这是错误的。

 
网站的核心数据有两部分:
一部分是程序文件,一部分是数据库。
 
程序文件
一般是php,html, jpg,css,js等文件,通过FTP途径进行上传到指定位置;
 
数据库
则是通过特定途径,例如phpmyadmin进行导入、或第一次安装是,执行安装。
 
程序文件和数据库之间,是必须通过类似config.php文件进行通讯。
 
如果您的网站不是第一次安装,一般导入数据库数据后,config配置文件一定要填写上数据库信息。
否则会出现访问网站,数据库连接不上的问题。
PHP如何去除BOM,PHP去除BOM详细教程

PHP去除BOM的方法:首先创建一个PHP代码文件;然后设置文件目录;接着定义一个“checkdir”以及“checkBOM”方法;最后将此代码文件放到根目录下并运行即可。

 

自己在调用接口时候,因为用到了对方提供的封装方法,在输出一组数据时候一直显示错误,最后想到可能对方给的方法里面含有编码问题(具有BOM头),所以上网搜索到一个检测BOM的方法并且可以去除重新生成新文件,运用之后就能正常显示数据了。

什么是BOM头?

 

 

解决方法:

# 这里代码为PHP方式去除当前目录及字目录所有文件BOM信息,只要将此代码文件放到根目录下,然后浏览器运行访问就可以了

 

数据库的事务日志满了,原因是"LOG_BACKUP"。

解决方法:

1).选择数据库–属性—选项—恢复模式–选择简单。

2).执行删除命令后,再调回完整即可。

在MySQL出现Errcode:28错误提示解决办法,Errcode: 28 - No space left on device

今天再给表加字段的时候,发现数据库报错,总是不能加入数据显示(Errcode: 28 - No space left on device), Time: 0.102000s这么一个错误。空间已满,这种情况一般是由于某个程序的日志较多造成的。
我们执行df -lh。查看写磁盘情况,发现/dev/vda1 40G 38G 0 100% /
达到了100%。
我们再执行du -sh /* .就可以发现哪个文件夹内容较多了。然后我们就可以一级一级的执行该方法,知道找到最终的日志文件就可以了。然后清理下我们不需要的日志文佳,数据库就正常了。

数据库出现时区错误解决方法教程

今天帮客户解决了一个数据库出现了一个数据库时区的错误问题:The server time zone value 'ÖD1ú±ê׼걼ä' is unrecognized or represents more than one time
解决办法:
控制台执行以下命令

show variables like '%time_zone%'; set global time_zone='+8:00';
MySQL服务无法启动请键入 NET HELPMSG 3534 教程

帮用户解决了一个Mysql8.0版本安装之后出现MySQL服务无法启动请键入 NET HELPMSG 3534 以获得更多的帮助,下面小编把解决办法与大家分享一下。
因为不是出现的:服务名无效。的错误也就表明现在的服务已经属于系统服务了,不是环境变量的问题。小编就打开了mysql的安装目录,然后发现没有data文件夹以及my.ini文件。下面小编就给出相应的解决办法:

  1. 没有文件夹以及里面的内容。
    解决办法:

    • 以管理员的身份打开dos窗口;
    • 切换到mysql的bin目录里面;
    • 以此执行下面的命令:

      • 卸载服务:mysql -remove
      • 安装服务:mysql --initialize-insecure和mysql -install
  2. 没有my.ini文件
    解决办法:

    • 新建my.ini文件
    • 输入以下内容(记得修改路径):

      [client] port=3306 [mysql] default-character-set=utf8 [mysqld] port=3306  # 设置mysql的安装目录 basedir="E:/MySQL/"  # 设置mysql数据库的数据的存放目录 datadir="E:/MySQL/data/" character-set-server=utf8 default-storage-engine=MyISAM  #支持 INNODB 引擎模式。修改为 default-storage-engine=INNODB 即可。  #如果 INNODB 模式如果不能启动,删除data目录下ib开头的日志文件重新启动。 sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" max_connections=512 query_cache_size=0 table_cache=256 tmp_table_size=18M thread_cache_size=8 myisam_max_sort_file_size=64G myisam_sort_buffer_size=35M key_buffer_size=25M read_buffer_size=64K read_rnd_buffer_size=256K sort_buffer_size=256K innodb_additional_mem_pool_size=2M innodb_flush_log_at_trx_commit=1 innodb_log_buffer_size=1M innodb_buffer_pool_size=47M innodb_log_file_size=24M innodb_thread_concurrency=8 innodb_thread_concurrency=8 innodb_thread_concurrency=8 innodb_thread_concurrency=8 innodb_thread_concurrency=8
WPS 在Excel里设置完成率公式方法!

在生活中,有时候我们可能会收到一些完成数量跟完成总数,这个时候需要让我们通过Excel来求出这些数据的完成率,那么我们该如何操作呢?接下来就给大家演示一下如何在Excel里设置完成率公式。

  在Excel里设置完成率公式方法:

  在WPS中新建一个Excel工作簿,如下图所示:

在完成率中输入公式=完成数量/总数,也即=a2/b2(千万不要忘记等号哦),如下图所示:

输入公式后,按回车键(enter)即可得到完成率,如图:

 点击左键下拉,即可批量计算完成率,如图:

在菜单栏中左键点击“常规”右边的小箭头,在出来的所有选项中左键单击选择“百分比”,如图:

 松开左键,即可得到百分数形式的完成率,格式就美观正规很多了,如图:

MySQL权限问题数据库被黑了

查看MySQL的访问IP权限

# 进入mysql docker exec -it mysql /bin/bash
mysql -u root -p # 设置本地IP才可以访问127.0.0.1改为本地公网IP GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY 'root' # 刷新权限 flush privileges;

exit

docker restart mysql
不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的表进行了更改或者启用了“阻止保存要求重新创建表的更改”选项。

一、问题

当我们把设计好的“数据库关系图”保存时,会弹出这个报错。

不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的表进行了更改或者启用了“阻止保存要求重新创建表的更改”选项。

在这里插入图片描述

二、分析

报错提示说了,可以启用“阻止保存要求重新创建表的更改”选项。那么如何启用该选项呢?

三、解决办法

  1. 打开工具栏的“工具”,点击“选项”。
    在这里插入图片描述
  2. 点击“设计器”,把“阻止保存要求重新创建表的更改”前面的打勾取消掉,然后点击“确定”即可。
    在这里插入图片描述

客户热线:037125966675