【问题标题】:Remove Time from DateTime values returned in Query从 Query 中返回的 DateTime 值中删除时间
【发布时间】:2013-08-22 14:04:33
【问题描述】:

在你们的帮助下,我有以下 SQL 查询:

SELECT DataLog.TimestampUTC,MeterTags.Name,DataLog.Data
FROM DataLog
INNER JOIN MeterTags
ON DataLog.MeterTagId = MeterTags.MeterTagId
WHERE DataLog.TimeStampUTC between cast(getdate() - 1 as date) and cast(getdate() as date) and
      DataLog.MeterTagId Between 416 AND 462;

这将返回一列“TimestampUTC”,其中包含 YYYY-MM-DD hh:mm:ss。我想在此列中删除时间,只显示 YYYY-MM-DD。

您能提供的任何帮助将不胜感激。

提前致谢。

【问题讨论】:

标签: sql sql-server-2008 tsql datetime


【解决方案1】:
SELECT convert(char(10), DataLog.TimestampUTC, 120) as TimestampUTC, 
MeterTags.Name,DataLog.Data
FROM DataLog
INNER JOIN MeterTags
ON DataLog.MeterTagId = MeterTags.MeterTagId
WHERE DataLog.TimeStampUTC between cast(getdate() - 1 as date) and cast(getdate() as date) and
      DataLog.MeterTagId Between 416 AND 462;

【讨论】:

    【解决方案2】:

    在 SQL Server 中,您可以转换为日期

    select Convert(Date, Convert(datetime, '2013/01/01 12:53:45'))
    

    结果:

    2013-01-01
    

    【讨论】:

      【解决方案3】:

      你应该使用: CAST(DataLog.TimestampUTC as date)

      代码如下:

      SELECT CAST(DataLog.TimestampUTC as date),MeterTags.Name,DataLog.Data
      FROM DataLog
      INNER JOIN MeterTags
      ON DataLog.MeterTagId = MeterTags.MeterTagId
      WHERE DataLog.TimeStampUTC between cast(getdate() - 1 as date) and cast(getdate() as date) and
            DataLog.MeterTagId Between 416 AND 462;
      

      【讨论】:

        猜你喜欢
        • 2013-07-15
        • 1970-01-01
        • 2017-12-11
        • 1970-01-01
        • 2014-09-07
        • 2018-12-20
        • 2011-06-07
        • 2010-10-04
        相关资源
        最近更新 更多