【问题标题】:selecting records based on datetime column changes the data in the datetime column ..very strange根据日期时间列选择记录会更改日期时间列中的数据..很奇怪
【发布时间】:2020-04-30 08:45:26
【问题描述】:

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

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 运行它,它总是给我相同的结果。我究竟做错了什么 ?

【问题讨论】:

  • 您的表中必须有一些 CommissionDate = '2019-01-01 00:00:00' 的行。
  • 这么简单的查询,结果一定是真的。
  • 您能否分享您的结果屏幕截图以及CommistionDate 日期信息?

标签: php mysql datetime phpmyadmin


【解决方案1】:

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

将您的查询更改为

SELECT `CommissionDate` FROM `posdata`

以获取所需数据的方式。

【讨论】:

    【解决方案2】:

    查询是正确的,有人可以删除这个问题吗!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-19
      • 2020-01-20
      • 2016-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多