Sql server SQL SERVER:日期格式DDMMYYYY
字符串:“FileName-13012018.txt” 如何从column1[varchar]解析值[13012018]并插入另一个column2[date] 我可以使用substring/left/right函数进行解析,但无法插入到column2[date]中 我的目标是从多行中获取此日期,并查找最大日期 专栏1Sql server SQL SERVER:日期格式DDMMYYYY,sql-server,Sql Server,字符串:“FileName-13012018.txt” 如何从column1[varchar]解析值[13012018]并插入另一个column2[date] 我可以使用substring/left/right函数进行解析,但无法插入到column2[date]中 我的目标是从多行中获取此日期,并查找最大日期 专栏1 文件名-13012018.txt 文件名-14012018.txt 文件名-15012018.txt 结果:15012018函数datefromparts根据其部分创建日期 考虑
文件名-13012018.txt 文件名-14012018.txt 文件名-15012018.txt
结果:15012018函数
datefromparts
根据其部分创建日期
考虑到您已经从字段结果中解析了“fileName”和“txt”,请尝试以下操作:
select max(
datefromparts(
right(result,4), --year
substring(result,3,2), --month
left(result,2) --day)
)
)
from table_with_parsed_result
函数
datefromparts
根据其部分创建日期
考虑到您已经从字段结果中解析了“fileName”和“txt”,请尝试以下操作:
select max(
datefromparts(
right(result,4), --year
substring(result,3,2), --month
left(result,2) --day)
)
)
from table_with_parsed_result
另一种可能的方法是删除不必要的字符并生成有效日期:
DECLARE @TmpTable TABLE (
FFileName varchar(50)
)
INSERT @TmpTable
VALUES
('FileName-13012018.txt'),
('FileName-14012018.txt'),
('FileName-15012018.txt')
SELECT
MAX(DATEFROMPARTS(
SUBSTRING(REPLACE(REPLACE(FFileName, 'Filename-', ''), '.txt', ''), 5, 4),
SUBSTRING(REPLACE(REPLACE(FFileName, 'Filename-', ''), '.txt', ''), 3, 2),
SUBSTRING(REPLACE(REPLACE(FFileName, 'Filename-', ''), '.txt', ''), 1, 2)
)) AS FMaxDate
FROM @TmpTable
另一种可能的方法是删除不必要的字符并生成有效日期:
DECLARE @TmpTable TABLE (
FFileName varchar(50)
)
INSERT @TmpTable
VALUES
('FileName-13012018.txt'),
('FileName-14012018.txt'),
('FileName-15012018.txt')
SELECT
MAX(DATEFROMPARTS(
SUBSTRING(REPLACE(REPLACE(FFileName, 'Filename-', ''), '.txt', ''), 5, 4),
SUBSTRING(REPLACE(REPLACE(FFileName, 'Filename-', ''), '.txt', ''), 3, 2),
SUBSTRING(REPLACE(REPLACE(FFileName, 'Filename-', ''), '.txt', ''), 1, 2)
)) AS FMaxDate
FROM @TmpTable
您能告诉我们sql server的版本吗?这样我们就可以找到最简单的解决方案了?datefromparts()需要2012日期字符串是否始终占据与字符串结尾相同的位置?@GeorgeMenoutis its2014@Damien_The_Unbeliever它可能不同,我现在有了解析字符串的线索,但是比较解析后的值并将其视为日期并找到最大日期是我的工作problem@Damien_The_Unbeliever这是我的解析逻辑左(右(文件名,12),8)您能告诉我们sql server的版本吗,这样我们就可以找到最简单的解决方案了?datefromparts()需要2012日期字符串是否始终占据与字符串结尾相同的位置?@GeorgeMenoutis its2014@Damien_The_Unbeliever它可能不同,我现在有了解析字符串的线索,但是比较解析后的值并将其视为日期并找到最大日期是我的工作problem@Damien_The_Unbeliever这是我的解析逻辑左(右(文件名,12),8)