Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用SQL时间_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

使用SQL时间

使用SQL时间,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我有两个字段(StartTime和EndTime),都是varchar字段(它是在我开始之前创建的) 我正在创建一个查询,以仅获取当前时间介于开始时间和结束时间之间的记录 例如,如果开始时间为凌晨1点,结束时间为晚上9点。现在的时间是上午11点,它将获得该记录 我不知道如何使用varchar字段 谢谢。如果全部采用相同的格式和24小时的时间,If就可以了。根据ASCII码 {t '08:00:00'} <= {t '11:00:00'} <= {t '19:00:00'} 如果您

我有两个字段(StartTime和EndTime),都是varchar字段(它是在我开始之前创建的)

我正在创建一个查询,以仅获取当前时间介于开始时间和结束时间之间的记录

例如,如果开始时间为凌晨1点,结束时间为晚上9点。现在的时间是上午11点,它将获得该记录

我不知道如何使用varchar字段


谢谢。

如果全部采用相同的格式和24小时的时间,If就可以了。根据ASCII码

{t '08:00:00'} <= {t '11:00:00'} <= {t '19:00:00'} 
如果您被遗留代码/数据困扰,则无需强制转换为时间等

根据评论进行编辑

如果你想铸造,那么从绒毛中提取真实数据

CAST(SUBSTRING('{t ''01:00:00''}', 5, 8) AS time)
--OR
CAST('01:00:00' AS time)

还有另一种方法,我将在这里编写示例查询。希望对您有所帮助

SELECT * from TableName
WHERE right(CONVERT(datetime,starttime,103),7) = '01:00AM' and
      right(CONVERT(datetime,endtime,103),7) = '09:00PM' and
      right(CONVERT(datetime,getdate(),103),7) = '11:00AM'

请告诉我们,您是如何将datetime转换/强制转换为此格式的字符串的我最终使用了您的{t'08:00:00'}
CAST(SUBSTRING('{t ''01:00:00''}', 5, 8) AS time)
--OR
CAST('01:00:00' AS time)
SELECT * from TableName
WHERE right(CONVERT(datetime,starttime,103),7) = '01:00AM' and
      right(CONVERT(datetime,endtime,103),7) = '09:00PM' and
      right(CONVERT(datetime,getdate(),103),7) = '11:00AM'