Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL错误日期计算_Mysql_Sql - Fatal编程技术网

MySQL错误日期计算

MySQL错误日期计算,mysql,sql,Mysql,Sql,我第一次看到这种sql行为。我不知道如何检查或做什么。新年过后,我们的一个系统开始做奇怪的事情。我在我们公司的系统里找到了这个代码 SELECT masinu_galiojimai. * , galiojimu_tipai.pavadinimas, galiojimu_tipai.ispeti_pries_x_dienu, masinos.masinos_nr AS masina, IF( DATEDIFF( masinu_galioj

我第一次看到这种sql行为。我不知道如何检查或做什么。新年过后,我们的一个系统开始做奇怪的事情。我在我们公司的系统里找到了这个代码

SELECT masinu_galiojimai. * , 
       galiojimu_tipai.pavadinimas,
       galiojimu_tipai.ispeti_pries_x_dienu, 
       masinos.masinos_nr AS masina,
       IF( DATEDIFF( masinu_galiojimai.galioja_iki, CURDATE( ) ) <0,  "baigesi", 2 *2 ) AS liko
FROM masinos
LEFT JOIN masinu_galiojimai ON masinu_galiojimai.masinos_id = masinos.id
LEFT JOIN galiojimu_tipai ON masinu_galiojimai.ispejimo_id = galiojimu_tipai.id
选择masinu_galiojimai.*,
galiojimu_tipai.pavadinimas,
galiojimu_tipai.ispeti_pries_x_dienu,
马西诺斯,马西诺斯,马西娜,

如果(DATEDIFF(masinu_galiojimai.galioja_iki,CURDATE())这不会解决您的问题,但会给您一个线索。

ASCII codes in hex: 
0x62 0x61 0x69 0x67 0x65 0x73 0x69
 b    a    i    g    e    s    i
因此,当您得到
62616967657369
时,它不是用于
2*2
,而是用于
baigesi

,您的结果是“正确的”,而是显示为十六进制字符串

ASCII中的“4”是0x34

“白格思” b=>62 a=>61

等等,所以你最终得到了62616967657369

这很可能是phpmyadmin的配置,因为它是在4转换为字符串后发生的。请尝试其他客户端以查看结果

另一种可能是连接上的排序规则设置。请参阅此错误报告


这似乎是在连接协议上使用utf8_-bin编码的结果。

galioja_-iki的数据类型是什么?
?Just:date,默认值:0000-00-00这个系统不是我们编程的。我们公司几年前买的,我自己很讨厌,因为它在ubuntu 14上用PHP5.2运行。我不能更新php,因为它会停止运行他们重写了很多函数,禁用了所有的错误记录。如果我启用错误记录,我将在每个页面中得到大约300个php错误。你只能想象他们到底写了什么。很多文件都是加密的,所以基本上我不能像我想的那样修改php“baigesi”中的内容列和它的数据类型是什么?我尝试了Sequel Pro for mac,现在我看到了我应该看到的一切。谢谢你的帮助。但我有其他问题。这段代码必须显示两个日期:一个是传输有效期已经过期,另一个是有效期即将过期。如果日期是positive number,php将显示这个日期,如果日期是负数,例如-13天,php将不会打印任何内容。