我试图创建一个加载程序,将大量数据文件(按日期排序)输入数据库。
我正在使用其他人使用SQL Server
数据工具完成的部分代码,我们创建一个包含单个单元格的表格,其中包含我们要加载的日期(格式为YYYY-MM
)as一个string
。
我的问题是我需要读取该单元格,将其转换为日期,然后更改其格式以显示DDMMYYYY
,其中DD
是该月的最后一天(以便我可以使用它找到正确的文件(文件名为prefix_DDMMYYYY.txt
)。
我一直试图使用像施法或转换之类的东西。但是我一直在从单元格获取信息时遇到问题。
有什么想法吗?
答案 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.yy
或dd-mm-yy
,但您还需要REPLACE
。所以我会在我的应用程序中进行转换。