【问题标题】:How can i insert the value of two column combine into table? [duplicate]如何将两列组合的值插入表中? [复制]
【发布时间】:2019-06-28 01:55:25
【问题描述】:

我有一个定义为类的表 - Id、Date、Time、Session、Remark Int 自动递增 日期、时间和备注将自动添加

会话应该是(日期+时间)的串联

假设日期和时间是 varchar(50)

插入类(Date,Time,Session,Remark)值('a','b', Concat(Date + Time),'c')

示例:
日期 - 2012 年 12 月 12 日
时间 - 上午 9:00 - 11:00
然后 --> 会议 - 2012 年 12 月 12 日上午 9:00-11:00

【问题讨论】:

  • 请提供样本数据
  • @fa06 我已经在上面编辑了!

标签: sql sql-server


【解决方案1】:

如果 Session 是 VARCHAR 数据类型,你为什么不使用 CONCAT

INSERT INTO t VALUES(CONCAT('2019-01-12', '12:00'))

【讨论】:

  • 我在会话中使用 concat(date,time) 但出现错误
  • @WYMOWaiYan dbfiddle.uk/… 在这里检查它有效
【解决方案2】:

如果您使用正确的数据类型,您可以简单地编写如下查询,[日期] 为日期,[时间] 为时间。

INSERT INTO [YOUR_TABLE]([DATE], [TIME], [SESSION], REMARK)
VALUES (@DATE, @TIME, CAST(@DATEAS DATETIME) + CAST(@TIME AS DATETIME),@REMARK)

【讨论】:

  • 你是这个意思吗?插入类(日期、时间、会话、备注)VALUES('a'、'b'、Cast(Date + Time)、'c')
  • 你能告诉我日期和时间的样本值吗?
  • 日期 - 12/12/2012 时间 - 9:00 - 11:00am 会议 - 12/12/2012 9:00-11:00am
  • 什么是数据类型? varchar 或日期和时间
  • 它只是 VARCHAR(50)
【解决方案3】:

你也可以试试这个

CREATE TABLE #date (dt datetime)

declare @date Varchar(20) ='2019-01-29' 
declare @time Varchar(20)='11:06:31.095' 

INSERT INTO #date 
    SELECT CONVERT(datetime,Cast(@date as Datetime))+ CONVERT(datetime,Cast(@time as Datetime))

select * from #date

您可以将@date 替换为日期列,将@time 替换为时间列。

【讨论】:

  • 日期和时间是 VARCHAR 数据类型而不是 dateTime
  • @WYMOWaiYan 根据 varchar 数据类型更新答案。
猜你喜欢
  • 2020-04-05
  • 1970-01-01
  • 1970-01-01
  • 2011-11-08
  • 2019-03-25
  • 2017-11-23
  • 2014-04-29
  • 2021-10-05
  • 1970-01-01
相关资源
最近更新 更多