如何在 MSSQL 中连接字符串和 GETDATE()

Posted

技术标签:

【中文标题】如何在 MSSQL 中连接字符串和 GETDATE()【英文标题】:How to concatenate a string and GETDATE() in MSSQL 【发布时间】:2011-10-23 00:19:42 【问题描述】:

我需要插入一个应包含日期的字符串(注释)。我需要的基本上是以下简单的操作:

INSERT INTO [Table_1]
           ([textColumn])
     VALUES
           ('Date: ' + GETDATE())
GO

然而,这会返回以下错误:从字符串转换日期和/或时间时转换失败。

任何快速修复?

【问题讨论】:

【参考方案1】:

您需要的日期时间格式是什么?

从这里选择一个http://www.sql-server-helper.com/tips/date-formats.aspx 并将其转换为如下所示的字符

INSERT INTO [Table_1]
           ([textColumn])
     VALUES
           ('Date: ' +CONVERT(CHAR(10),  GETDATE(), 120))
GO

【讨论】:

谢谢,这正是我所需要的。我最终得到了这个版本:convert(VARCHAR(11), GETDATE(), 106)) -- Format: 09 Aug 2011【参考方案2】:

根据列的定义,您可以尝试将日期转换或转换为所需的类型:

INSERT INTO [Table_1]
       ([textColumn])
 VALUES
       ('Date: ' + CAST(GETDATE() as nvarchar(max)))
GO

要格式化日期,请使用转换,例如

 INSERT INTO [Table_1]
       ([textColumn])
 VALUES
       ('Date: ' + convert(nvarchar(max), GETDATE(), 101))
 GO

最后一个参数定义格式 - 详见msdn。

【讨论】:

【参考方案3】:

您可以仅将日期时间存储在列中,而不是将其添加为数据的一部分,并使用 SELECT 语句附加文本日期

select 'Date '+ CAST(GETDATE() as nvarchar(max)) from [Table_1]

【讨论】:

【参考方案4】:

如果输出字段之一为空,则组合输出将为空。 要解决,试试这个

lname + ',' + 空格(1) + fname + 空格(1) + (如果 mname 为 null 然后 '' else mname end)作为 FullName

来自: http://forums.devshed.com/ms-sql-development-95/concatenate-when-one-column-is-null-371723.html

我试过了,效果很好!

【讨论】:

以上是关于如何在 MSSQL 中连接字符串和 GETDATE()的主要内容,如果未能解决你的问题,请参考以下文章

使用 MSSQL GetDate() 时如何获取日期? [复制]

[MSsql] 如何查询近30天的数据

如何保护Vb6应用程序和mssql服务器之间的连接?

MsSQL如何在一次查询中从给定的日期和仓库号获取最近的未来值和值的总和

mssql-异常value '0000-00-00' can not be represented as java.sql.Date

如何更改 MSSQL 中所有表、视图和存储过程的架构