Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何防止将假日插入作为日期列的表中_Mysql_Sql - Fatal编程技术网

Mysql 如何防止将假日插入作为日期列的表中

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

我有一个数据库,我需要有一个会议桌,其中该桌的日期类型为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 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函数