mysql - 使用存储过程查找学期

标签 mysql sql

我有一个疑问:

SELECT * FROM `commande`:

id   datecreation            motif          tva    numero   periode
1   27/02/2017 16:16    Achat marchandise   NULL    C001    NULL
9   28/03/2017 14:43    Achat marchandise   NULL    C002    NULL
10  28/03/2017 14:47    Achat marchandise   NULL    C003    NULL
11  28/04/2017 14:53    Achat marchandise   NULL    C004    NULL
12  28/04/2017 14:57    Achat marchandise   NULL    C005    NULL
13  28/05/2017 15:00    Achat marchandise   NULL    C006    NULL
14  28/05/2017 15:36    Achat marchandise   NULL    C007    NULL
15  28/05/2017 16:58    Achat marchandise   NULL    C008    NULL
16  28/05/2017 17:11    Achat marchandise   NULL    C009    NULL

我想创建一个存储过程来根据“datecreation”月份更新列“periode”,“periode”列是学期号,

例如:

 if month(datecreation)=4 then periode = 2 

 if month(datecreation)=3 then periode = 1

 if month(datecreation)=5 then periode = 2

我该怎么做?谢谢

最佳答案

正如我在评论中提到的,学期系统将一年分为两部分。在这种情况下,第 1 - 6 个月是第 1 学期,第 7 - 12 个月是第 2 学期。您可以像下面这样实现

update commande
set periode =
(floor(month(datecreation)/6) + 1 ); 

如果您希望第 3 个月为 1,月份 452,那么您就是在说话关于季度系统,其中年份分为 4 部分。在这种情况下使用

update commande
set periode =
(floor(month(datecreation)/4) + 1 ); 

关于mysql - 使用存储过程查找学期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44365535/

相关文章:

mysql - 检查某个客户端是否在表中出现多次

mysql - 使用 SQL 计算 "activation"百分比

sql - 查询以检查是否已经添加了 friend

sql - PostgreSQL:仅扫描相关分区

mysql - 提高 delete with IN 性能

mysql - 加入有条件的表

php - "pushing"数据库更改为网页未刷新

php - 复杂SQL查询自引用表

mysql - 在不丢失数据的情况下更改数据库列名称及其类型

mysql - "Host is not allowed to connect to this MySQL server"通过网络