【问题标题】:T-SQL 2005: Add Date and TimeT-SQL 2005:添加日期和时间
【发布时间】:2015-08-25 17:16:19
【问题描述】:

我有两个日期时间类型的字段:

Date = '2011-1-01 00:00:00.000'
Time = '1900-01-01 3:31:19.000'

“1900-01-01”是默认值,所以我只对时间部分感兴趣 (3:31:19.000)。

我想要的只是将日期和时间结合在一起。所以,对于这个例子,我想要一个可以给我结果的查询:

Combined = '2011-1-01 3:31:19.000'

我使用的是 T-SQL 2005。

【问题讨论】:

  • 时间总是一样的 1900 年吗?
  • 你有主键吗?如何合并日期?
  • 是的,时间值将始终为 1900-01-01
  • @Mihai:我确实有一个主键。为了简单起见,我只想知道如何合并这两个字段。Multumesc

标签: sql sql-server-2005 dateadd


【解决方案1】:

如果您想要一个无字符串选项,您可以将 DATEADD/DATEPART 运算符堆叠在一起...

DECLARE @Date DATETIME = '2011-1-01 00:00:00.000'
, @Time DATETIME = '1900-01-01 3:31:19.000'

SELECT DATEADD(hh, DATEPART(hh, @Time), DATEADD(mi, DATEPART(mi, @Time), @Date)) --and so on

2011-01-01 03:31:00.000 中的结果

【讨论】:

    【解决方案2】:

    类似的东西

    • Convert(date,...) --strips time
    • Convert(varchar(),..,108) --strips 日期

    查询

    select  Convert(date,'2011-1-01 00:00:00.000') 
                 +' '+ convert(varchar(20),'1900-01-01 3:31:19.000',108)
    

    【讨论】:

    • 我使用的是 2005 版本,所以这对我不起作用(出现此错误:类型日期不是定义的系统类型。)
    猜你喜欢
    • 2010-11-10
    • 1970-01-01
    • 2010-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-11
    相关资源
    最近更新 更多