在Insert - SQL上连接两个值

时间:2012-03-02 14:50:00

标签: sql sql-server syntax insert

我正在尝试完成看似简单的事情,但我无法找到解决方案 - 我可能写错了。

我有第三方软件,它将日期和时间输出为两个单独的值,一个用于日期,另一个用于时间,我需要能够INSERT将该数据作为一个datetime字段进入SQL。

第三方软件基于基于.NET的专有语言构建,并使用SQL Server 2005。

以下是我在软件中的两个值:

let cbdate1 = cbdate
let cbtime1 = cbhr & ":" & cbmn & ":00 " & ampm

然后SQL会变为:

DOSQL "INSERT INTO Leads (DateTimeField) VALUES (cbdate1 + ' ' + cbtime1)"

基本上,我试图在插入表格时加入这两个值。这不起作用,我无法指导自己找到合适的答案。

其他信息:

日期(cbdate1)显示为“MM / DD / YYYY”,时间简单地加入,如“HH:MM:00 AM”

3 个答案:

答案 0 :(得分:6)

您当前正在使用双引号,而应使用单引号,因为这是SQL中的有效字符串。

 DOSQL "INSERT INTO Leads (DateTimeField) VALUES (cbdate1 + ' ' + cbtime1)"

修改:

现在,如果您遇到进一步的问题,可能是因为您的DateTimeFielddatetime数据类型。现在,您可以在连接转换后将字符串转换为 correct format

像:

 DOSQL "INSERT INTO Leads (DateTimeField) VALUES (Convert(datetime, cbdate1 + ' ' + cbtime1))"

编辑#2:

如果没有24小时的部分,您将需要mon dd yyyy格式:2012年10月22日。否则您可能需要尝试将时间部分转换为24小时格式。

答案 1 :(得分:0)

首先在源代码中加入日期和时间值,然后将单个值插入数据库。你没有说你正在使用什么编程语言,所以我不能告诉你如何做到这一点。但是,在VB6和任何.NET语言中都很简单。

答案 2 :(得分:0)

您需要做的是将字符串合并在一起,然后转换为日期时间类型。确保字符串格式正确。 (即01-01-01,01 / 01/01等)

INSERT INTO LEADS (DateTimeField) VALUES (CAST((cbdate1 + ' ' + cbtime1) as datetime)

根据您的需要,请参阅msdn了解输出格式。

http://msdn.microsoft.com/en-us/library/aa226054(v=sql.80).aspx