Mysql 如何防止将假日插入作为日期列的表中
我有一个数据库,我需要有一个会议桌,其中该桌的日期类型为date。我需要防止用户在该表中插入假日或周末的日期。最好的方法是什么 这是我的模式:Mysql 如何防止将假日插入作为日期列的表中,mysql,sql,Mysql,Sql,我有一个数据库,我需要有一个会议桌,其中该桌的日期类型为date。我需要防止用户在该表中插入假日或周末的日期。最好的方法是什么 这是我的模式: User user_id cellphone name role_id Role role_id role_type (Veterinário,Assistent,Client) Meeting meeting_id date (day+ hour) Unique Key //need holiday and weekends prevention
User
user_id
cellphone
name
role_id
Role
role_id
role_type (Veterinário,Assistent,Client)
Meeting
meeting_id
date (day+ hour) Unique Key //need holiday and weekends prevention here
user_id_Vet
user_id_Client
只需在数据库中创建一个假日表,在将记录插入会议表之前,检查所选日期是否在假日表中。若所选日期在假日表中,则使用JavaScript返回消息“这是一个假日”。否则返回成功。只需在数据库中创建一个假日表,在将记录插入会议桌之前,检查所选日期是否在假日表中。若所选日期在假日表中,则使用JavaScript返回消息“这是一个假日”。否则就会成功。周末是最简单的一点:
DROP TABLE IF EXISTS my_table;
CREATE TABLE my_table
(dt DATE NOT NULL);
INSERT INTO my_table SELECT '2018-08-19' FROM (SELECT 1) n WHERE WEEKDAY('2018-08-19') <5;
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0
INSERT INTO my_table SELECT '2018-08-20' FROM (SELECT 1) n WHERE WEEKDAY('2018-08-20') <5;
Query OK, 1 row affected (0.50 sec)
Records: 1 Duplicates: 0 Warnings: 0
SELECT * FROM my_table;
+------------+
| dt |
+------------+
| 2018-08-20 |
+------------+
1 row in set (0.00 sec)
周末很简单:
DROP TABLE IF EXISTS my_table;
CREATE TABLE my_table
(dt DATE NOT NULL);
INSERT INTO my_table SELECT '2018-08-19' FROM (SELECT 1) n WHERE WEEKDAY('2018-08-19') <5;
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0
INSERT INTO my_table SELECT '2018-08-20' FROM (SELECT 1) n WHERE WEEKDAY('2018-08-20') <5;
Query OK, 1 row affected (0.50 sec)
Records: 1 Duplicates: 0 Warnings: 0
SELECT * FROM my_table;
+------------+
| dt |
+------------+
| 2018-08-20 |
+------------+
1 row in set (0.00 sec)
日历表。是的,日历表。周末很容易。大多数美国假期都相当简单,并且每年都会遵循一种模式。复活节会让你发疯的。您的区域和/或商务假期可能会有所不同。>>这是MS SQL Server,我一直偏爱Aaron Bertrand的日历表脚本,但您应该能够修改该代码以使用MySQL.calendar table.Yes calendar table。周末很容易。大多数美国假期都相当简单,并且每年都会遵循一种模式。复活节会让你发疯的。您的区域和/或商务假期可能会有所不同。>>这是MS SQL Server,我一直偏爱Aaron Bertrand的日历表脚本,但您应该能够修改该代码以使用MySQL。好的,那么周末呢?使用可以识别工作日。您在SQL中使用的语言是什么?您是在执行SQL查询,还是在PHP或其他语言中使用SQL?我正在使用JavaSpring框架为移动消费创建API访问此链接。在这里您可以看到一个从日期获取日期的方法。只需以字符串形式从用户处获取日期,然后使用此链接中给出的方法从日期获取日期。现在,如果输出是sat或sun。返回错误,否则返回成功。希望对您有所帮助好吧,那么周末呢?使用SQL可以识别工作日。您使用的SQL语言是什么?您是在执行SQL查询,还是在PHP或其他语言中使用SQL?我正在使用JavaSpring框架为移动消费创建API访问此链接。在这里您可以看到一个从日期获取日期的方法。只需以字符串形式从用户处获取日期,然后使用此链接中给出的方法从日期获取日期。现在,如果输出是sat或sun。返回错误,否则返回成功。希望能有所帮助。如果工作日>5号被视为周末?第5号也是周末。不。为了清晰起见,您可以说>4或>=5或@jose,比如DatePartdw返回这些值:0=星期一,1=星期二,2=星期三,3=星期四,4=星期五,5=星期六,6=Sunday@JosephCdatepart不是一个mysql函数,所以如果Weekday>5被认为是一个周末?No.5也是一个周末。No。为了清晰起见,您可以说>4或>=5或@jose,比如DatePartdw返回这些值:0=星期一,1=星期二,2=星期三,3=星期四,4=星期五,5=星期六,6=Sunday@JosephCdatepart不是mysql函数