arvindcis Ответов: 2

Как использовать время в SQL server


как бросить время и как сравнить в sql server
Я использую следующее

Я получаю эту ошибку

Msg 241, Уровень 16, Состояние 1, Строка 1
Преобразование не удалось при преобразовании даты и / или времени из символьной строки.


Спасибо

Что я уже пробовал:

update WorkingHours set intime='09:45' where cast(intime as time) >= '09:46' and cast(intime as time) <= '09:55'
  PRINT ''
  update WorkingHours set outtime='18:15' where cast(outtime as time) >= '18:16'
  update WorkingHours set intime='09:25' where cast(intime as time) < '09:20'
  update WorkingHours set LateComing='Yes' where cast(intime as time) > '10:45' and InTime is not null
  update WorkingHours set EarlyLeaving='Yes' where cast(OutTime as time) < '05:45' and OutTime is not null
  update WorkingHours set MissPunchDate=date where InTime is not null and OutTime is null
  update WorkingHours set MissPunchDate=date where OutTime is not null and InTime is null
  
  update WorkingHours set ShortPerDay='Yes' where (dbo.[MinutesToDuration](datediff(minute,intime,outtime))) < '8' and InTime is not null and OutTime is not null

RedDk

Видеть здесь:
https://technet.microsoft.com/en-us/library/ms186724(v=sql. 110). aspx

2 Ответов

Рейтинг:
1

W∴ Balboos, GHB

Вам нужно сравнить подобные элементы, которые имеют числовые значения.
int, float, time, date, datetime и т. д.-Все они имеют числовые значения.
Струны, с другой стороны, нет.

Если вы хотите сравнить два раза, то они оба должны быть брошены во время.
Перефразирование:
Вы не можете сравнивать актерский состав (outtime as time) и "18: 16"
Сделать это:

cast(outtime as time) > cast('18:16' as time)