mysql - 在文件名sql表达式上将字符与日期分开

标签 mysql sql sql-server expression

我只是想知道如何使用 SQL 表达式将字符与文件名分开,例如文件名是 IED_2015Nov020914.AF 我想在 SQL 表达式的 where 子句中分隔或拆分“日期”即“2015Nov02”。我尝试使用名为“cross apply”的功能但不幸的是它在这里不起作用是我到目前为止的工作

where (patindex('%[0-9]%', File_name) > "2018-Nov-12"));

谢谢

最佳答案

最简单的方法是定位_ 字符和子字符串9 个字符。

CREATE TABLE #tab(filename VARCHAR(100));

INSERT INTO #tab VALUES ('IED_2015Nov020914.AF');

SELECT SUBSTRING(filename, CHARINDEX('_',filename)+1, 9) AS result
FROM #tab;

LiveDemo

警告:这仅在您的数据具有固定格式时才有效: ...._yyyyMMMdd....

如果你需要,你可以CAST结果:

SELECT CAST(SUBSTRING(filename, CHARINDEX('_',filename)+1, 9) AS DATE) AS result
FROM #tab;

LiveDemo2

关于mysql - 在文件名sql表达式上将字符与日期分开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33473745/

相关文章:

sql-server - 如何为包含所有存储行的现有 SQL Server 表生成 INSERT 脚本?

java - 如何对具有不同可能性的单个列的记录求和?

sql - PostgreSQL - 使用 AVG() 和 MAX() 时如何忽略严重错误?

mysql - 程序没有做任何事情

java - 使用 Spring 的 NamedParamterJdbcTemplate 和命名参数进行分组

mysql - 不正确的日期时间值 : 'DEFAULT' using mysql in node. js

sql-server - SQL Server锁升级所有表都带有 "TABLE"

sql-server - 在 Sql Server 中创建只读 View

Mysql日期从字符串中选择

mysql - 排除计数为零的 MySQL 结果行