Mysql在数据库中插入日期

时间:2015-12-05 09:12:44

标签: php mysql dateinterval

我正在尝试执行以下查询:

INSERT INTO table_timesheet (name, datein, dateout)
VALUES ('Rupert', 'NOW()', '')
WHERE NOT EXISTS (
    SELECT name FROM table_listnames WHERE datein='NOW()'
);

但这会返回错误。

基本上我不想插入记录,如果' datein'记录的字段已经存在于另一条记录中 - 如何检查新的datein是否唯一?

我如何以相同的方式插入同一行上的日期,就像更新datein行一样?

2 个答案:

答案 0 :(得分:3)

此INSERT查询将完全按照您的要求执行:

INSERT INTO table_timesheet (name, datein, dateout)
SELECT 'Rupert', NOW(), null
FROM DUAL
WHERE NOT EXISTS (
    SELECT * FROM table_listnames WHERE datein=NOW()
);

请看here。但正确的解决方案是设置表约束。 table_timesheettable_listnames如何相关?我会在datein列上使用唯一约束,但这取决于您的要求。

答案 1 :(得分:0)

首先检查此查询(使用MYSQLI或PDO)如果此查询返回false而不是插入记录

如果......这返回错误

SELECT name FROM table_listnames WHERE datein='NOW()'

FALSE

INSERT INTO table_timesheet (name, datein, dateout)VALUES ('Rupert', 'NOW()', '')