首页 > 解决方案 > 根据日期时间列选择记录会更改日期时间列中的数据..很奇怪

问题描述

所以我有一个包含多个日期时间列的表,我正在尝试使用基于某个日期选择某些记录

SELECT * FROM `posdata` WHERE `CommissionDate` >= '2019-01-01 00:00:00' 

表结构

CREATE TABLE `posdata` (
  `ID` int(11) NOT NULL,
  `DISTYNAME` varchar(30) DEFAULT NULL,    
  `ENDCUST` varchar(75) DEFAULT NULL,
  `MFGCUST` varchar(50) DEFAULT NULL,
  `EXTPRICE` double DEFAULT NULL,  
  `POSPERIOD` datetime DEFAULT NULL,
  `PAYMENTDATE` date DEFAULT NULL,
  `QTY` double DEFAULT NULL,
  `UNITCOST` double DEFAULT NULL,
  `UNITPRICE` double DEFAULT NULL,
  `COMMISSION` double DEFAULT NULL,
  `SALESORDER` varchar(40) DEFAULT NULL,
  `PO` varchar(40) DEFAULT NULL,
  `POLineItem` varchar(20) DEFAULT NULL,
  `ENTRYDATE` datetime DEFAULT NULL,
  `AdjustedCommission` int(11) DEFAULT NULL,
  `CustomerPart-NO` varchar(50) DEFAULT NULL,
  `CommissionDate` datetime DEFAULT NULL,
  `EXTCOST` double DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
ALTER TABLE `posdata`
  ADD PRIMARY KEY (`ID`),
  ADD KEY `CommissionDate` (`CommissionDate`);
ALTER TABLE `posdata` ADD FULLTEXT KEY `posdata_endcustomer_index` (`ENDCUST`);

发生了一件非常奇怪的事情,它根据需要返回所有字段,但 CommissionDate 列只有“2019-01-01 00:00:00”作为日期。数据库中实际的 CommissionDate 列只有“2016-01-01 00:00:00”作为数据。

我正在使用 phpmyadmin 来运行此查询,并在其上使用了搜索过滤器,无论我通过 php 脚本还是 phpmyadmin 运行它,它总是给我相同的结果。我究竟做错了什么 ?

标签: phpmysqldatetimephpmyadmin

解决方案


在您的查询SELECT * FROM 'posdata'中意味着从表中获取所有字段发布数据,然后应用下一个 WHERE 子句。如果您只想从CommissionDate列中获取数据

将您的查询更改为

SELECT `CommissionDate` FROM `posdata`

以获取所需数据的方式。


推荐阅读