转换varchar int时间格式SQL

时间:2013-02-12 05:34:29

标签: sql database

我想编写基本上导致预约时间的查询。这是我想要的全貌。 enter image description here

问题是FL_CO_APPOINTMENT表中的时间列是varchar(50),并且在所需的列中,约会格式是09:00 - 11:00 01/12/2012。如何操作时间列,即varchar(50),以获得所需公式中提到的结果。我有谷歌,但没有找到任何帮助。谢谢。

2 个答案:

答案 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

谢谢大家的答案