2017-07-03 97 views
-1

我有一个数据库,其中第一列是英国格式的星期启动(日/月/年)。为什么我的SQL数据库按第一列排序?

每个新的一周行添加到使用

"INSERT INTO table VALUES (".$weekstart.", 0, 0, 0)"; 

的“0'代表值的表那个星期记录下来。

进入7月份时,030717出现在表格的顶部,而不是附加到底部,导致我假定表格按第一列排序。有没有办法来禁用这个或我将不得不添加索引列?

如果我要建立一个索引列,那么在每个新周开始时考虑这个问题的最好方法是在表中创建新行时 - 我不想对数据库进行调用以获取以前的索引只需添加一个并再次写入它?

编辑:

查询:

$query = "INSERT INTO table VALUES (".$weekStart.", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"; 
    runSql($query); 

function runSql($query){ 
    $username = "XXX"; 
    $password = "XXX"; 

    $conn = new PDO('mysql:host=XXX;dbname=XXX', $username, $password); 
    $stmt = $conn->prepare($query); 
    $stmt->execute(); 
    $result = $stmt->setFetchMode(PDO::FETCH_OBJ); 
$read = $stmt->fetchColumn(); 

return $read; 
} 

截至上周,列 'weekStart' 显示所有日期,以便(070617,140617,210617,280617)。截至今天早上,030717已将自己推上了第一排。

+3

表格本来就是未排序的,结果显示的顺序是不可预知的,除非你指定了一个ORDER BY'子句。另外,它看起来像是将日期存储在字符串列('varchar','char')中。你应该使用'date'数据类型,这就是它的用途。将日期作为字符串存储不过是头痛而已。 – HoneyBadger

+0

我没有任何东西(我可以看到)以这种方式排列桌子,有什么建议吗? –

+0

你能提供表的列结构和查询吗? – Jester

回答

0

只是存储日期意味着日期列类型:DATE类型

组成一个类型自己将无法正常工作,除非你拿出那个字母顺序排序,将你想要的顺序格式。但是这会让你没有所有的内建函数来操纵日期(或日期时间,如果时间有意义的话)

相关问题