我试图将前导零添加到保存为varchar的时间列

时间:2015-11-25 04:35:00

标签: sql sql-server-2008-r2

我有一个Microsoft SQL Server 2008 R2数据库。表格中的一列有一些格式不正确的数据,我需要更正。

该列是varchar(8),并且包含这样的数据。

05:30 PM
10:00 AM
09:30 AM
5:30 PM
6:30 PM
06:30 PM

我需要在下午5:30和下午6:30添加一个前导零,以便所有字段都是 相同的长度。

update MeetingRegister
set sMeetingTime = REPLACE(sMeetingTime, sMeetingTime, '0'+ sMeetingTime) 
where sMeetingTime like '_:%' `

如果我只匹配一条记录,我认为我的脚本有效。

如何更新表格中的所有匹配记录?

更新

我应该添加错误消息

  

Msg 512,Level 16,State 1,Procedure vjr_trig_Meeting_Update,Line 154
  子查询返回的值超过1。当子查询遵循=,!=,<,< =,>,> =或子查询用作表达式时,不允许这样做。   该声明已被终止。

现在我这样做(强迫我仔细阅读)。

我发现我的问题与触发器有关。

1 个答案:

答案 0 :(得分:1)

这个怎么样?

#tabui{
  position:relative;
}

.leftarrow {
  position:absolute;
  left: 0;
  top: 0;
  bottom: 0;
}

.rightarrow {
  position:absolute;
  right: 0;
  top: 0;
  bottom: 0;
}

您的逻辑过于复杂,但它也适用于所有匹配的行。