我想编写基本上导致预约时间的查询。这是我想要的全貌。
问题是FL_CO_APPOINTMENT表中的时间列是varchar(50),并且在所需的列中,约会格式是09:00 - 11:00 01/12/2012。如何操作时间列,即varchar(50),以获得所需公式中提到的结果。我有谷歌,但没有找到任何帮助。谢谢。
答案 0 :(得分:2)
您可以将varchar字段转换为datetime。
试试这个
select '('+Convert(varchar,convert(datetime,'09:00 AM'),108) + ' - ' +Convert(varchar, dateadd(minute,10,convert(datetime,'09:00 AM')),108) +') '+ Convert(varchar,convert(datetime,'2013-02-04 00:00:00.000'),101)
根据你的表
select '('+Convert(varchar,convert(datetime,[Time]),108) + ' - ' +Convert(varchar, dateadd(minute,[DURATION],convert(datetime,[TIME])),108) +') '+ Convert(varchar,convert(datetime,[AppointmentDate]),101)
from FL_CO_APPOINTMENT JOIN FL_FAULT ON ....
答案 1 :(得分:0)
我咨询高级他们建议我这个解决方案。
substring(CONVERT(varchar,convert(datetime,FL_CO_APPOINTMENT.AppointmentDate)+FL_CO_APPOINTMENT.Time),13,5) +'' - ''+ substring(convert(varchar,DATEADD(HOUR,2,convert(datetime,FL_CO_APPOINTMENT.AppointmentDate)+FL_CO_APPOINTMENT.Time)),13,5) +'' ''+ convert(varchar, FL_CO_APPOINTMENT.AppointmentDate, 11) Appointment
谢谢大家的答案