(SQL) 更新所有列数据按特定时间

huangapple go评论64阅读模式
英文:

(SQL) UPDATE all column data by specific time

问题

我想要从特定时间更新数据,而不是逐行更新数据库中的每一行。要如何从特定的“时间”列进行更新,如果“时间”列在(07.00.00-08.00.00)范围内,将在所有“info”列中显示“出勤”;如果时间在(17.00.00-19.00.00)范围内,将在所有“info”列中显示“回家”,所以不是逐行更新。

这是我的数据库:

id	名称	时间	信息
1	阿尔弗雷德	07.00.00	出勤
2	汤姆	07.00.00	出勤
3	托米	07.40.00	NULL
4	安娜	07.50.00	NULL
5	安娜	17.50.00	回家
6	安迪	07.50.00	A

我尝试使用更新数据,但只适用于单个数据时间。

英文:

i want update data from dcpecific time,from my db without update one by one from each rows.so how to update from specific "time" column if the 'time' column from (07.00.00-08.00.00) will show 'attandence' in all 'info' column.and if time (17.00.00-19.00.00) will show 'go home' in all "info" column,so not update one by one rows.

heres my db:

id	nama	time	    info
1	Alfred  07.00.00	attandence
2	Tom	    07.00.00	attandence
3	Tomi	07.40.00	NULL
4	ana	    07.50.00	NULL
5	ana 	17.50.00	go gome
6	andy	07.50.00	A

ive try by using upadate data but just for one single data time.

答案1

得分: 0

更新 [tableName] 表中的信息为 '回家吧',时间范围在 '17:00:00' 到 '19:00:00' 之间。

英文:

Just this Code

Update [tableName] set info = 'go home' where time between '17:00:00'  and '19:00:00'

答案2

得分: 0

代码依赖于您使用的数据库;sql 标签代表语言,但数据库有其特色,通常不遵循标准。

在您的情况下,time 列可能存在疑问,因为我们不知道它是什么 - 它是一个字符串(char 数据类型之一),date(仅显示时间部分),或者... 因此,您可能需要对其应用某些函数,以便正确解释值。

然而,一般的方法可能涉及使用 case 表达式。这只是一个查询的示例 - 根据实际情况调整它,使其在您的数据库中实际运行。

update your_table set
  info = case when time between '07.00.00' and '08.00.00' then 'attendance'
              when time between '17.00.00' and '19.00.00' then 'go home'
         end;
英文:

Code depends on database you use; the sql tag represents the language, but databases have their flavors and (usually) don't follow the standard.

In your case, the time column might be questionable because we don't know what it is - is it a string (one of char datatypes), date (with only time portion presented) or ... so you might need to apply certain function(s) to it so that values are correctly interpreted.

Though, general approach might involve the case expression. This is just an example of a query - adjust it so that it actually works in your database.

update your_table set
  info = case when time between '07.00.00' and '08.00.00' then 'attandence'
              when time between '17.00.00' and '19.00.00' then 'go home'
         end;

huangapple
  • 本文由 发表于 2023年6月26日 12:42:12
  • 转载请务必保留本文链接:https://go.coder-hub.com/76553573.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定