在SQL Server中使用TO_CHAR函数

我要执行此查询:

SELECT *
FROM Production
WHERE TO_CHAR(Time_Stamp,"DD/MM/YYYY") = current_date
AND TO_CHAR(Time_STAMP,"HH:MM:SS") BETWEEN "00:00:00" AND "07:00:00"

我的时间戳记字段看起来像:"DD/MM/YYYY HH:MM:SS"

不幸的是,函数TO_CHAR在SQL Server中不存在。

如何转换查询使其可以在SQL Server上使用?

lihuiflora 回答:在SQL Server中使用TO_CHAR函数

SQL Server中没有TO_CHAR。如果您需要传递日期,请使用ISO格式yyyyMMddyyyy-MM-ddThh:mm:ss.sssssss或仅使用hh:mm:ss.sssssss的时间。

但是,看起来您似乎拥有今天的价值(我假设是current_date的价值),看起来您想要这样:

SELECT *
FROM Production
WHERE Time_Stamp >= DATEADD(DAY,DATEDIFF(DAY,GETDATE()),0)
  AND Time_Stamp < DATEADD(HOUR,7,DATEADD(DAY,0));
,

您可以使用cast()

SELECT *
FROM Production
WHERE cast(Time_Stamp as date) = cast(getdate() as date)
AND cast(Time_STAMP as time(0)) BETWEEN "00:00:00" AND "07:00:00"
,

另一种方法是:

SELECT *
FROM Production
WHERE Time_Stamp >= CONVERT(DATE,GETDATE()) AND
      Time_Stamp < DATEADD(HOUR,1,CONVERT(datetime,CONVERT(DATE,GETDATE())));

采用这种格式,可以将TIME_STAMP上的索引用于数据和时间的比较。

本文链接:https://www.f2er.com/3153602.html

大家都在问