到目前为止,在表格上转换信息

时间:2015-01-20 09:56:09

标签: sql date

我试图创建一个加载程序,将大量数据文件(按日期排序)输入数据库。 我正在使用其他人使用SQL Server数据工具完成的部分代码,我们创建一个包含单个单元格的表格,其中包含我们要加载的日期(格式为YYYY-MM)as一个string。 我的问题是我需要读取该单元格,将其转换为日期,然后更改其格式以显示DDMMYYYY,其中DD是该月的最后一天(以便我可以使用它找到正确的文件(文件名为prefix_DDMMYYYY.txt)。

我一直试图使用像施法或转换之类的东西。但是我一直在从单元格获取信息时遇到问题。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以使用以下内容:

DECLARE @s NVARCHAR(MAX) = '2015-01'
SELECT DATEADD(dd, -1, DATEADD(MM, 1, @s + '-01'))

SELECT DATEADD(dd, -1, DATEADD(MM, 1, ColumnName + '-01'))
FROM TableName

并在您的应用中转换为特定格式或使用非标准转换

SELECT REPLACE(CONVERT(NVARCHAR(MAX), DATEADD(dd, -1, DATEADD(MM, 1, @s + '-01')), 104) , '.', '')

SELECT REPLACE(CONVERT(NVARCHAR(MAX), DATEADD(dd, -1, DATEADD(MM, 1, ColumnName  + '-01')), 104) , '.', '')
FROM TableName

你需要一些黑客,因为SQL Server's CONVERT没有这种格式'ddMMyyyy'。最接近的是dd.mm.yydd-mm-yy,但您还需要REPLACE。所以我会在我的应用程序中进行转换。