在postgresql中选择带有子字符串和强制转换的日期中的月份
我一直在绞尽脑汁做这个练习,教授希望我们只从postgresql中的日期类型中选择月份,但只使用子字符串和cast。 我试过几种方法,但都不管用。这是我的后一句话:在postgresql中选择带有子字符串和强制转换的日期中的月份,sql,regex,postgresql,casting,substring,Sql,Regex,Postgresql,Casting,Substring,我一直在绞尽脑汁做这个练习,教授希望我们只从postgresql中的日期类型中选择月份,但只使用子字符串和cast。 我试过几种方法,但都不管用。这是我的后一句话: select substring(cast(fac.fecha as varchar(10)), '_____[0,9]___' ) from facturas fac 这句话返回以下内容: [0,9]是“单个0或9或冒号”的正则表达式。 您可能需要[0-9]{2},即“2位”的正则表达式 另一方面,substr()(不同的拼写,
select substring(cast(fac.fecha as varchar(10)), '_____[0,9]___' ) from facturas fac
这句话返回以下内容:
[0,9]
是“单个0或9或冒号”的正则表达式。您可能需要
[0-9]{2}
,即“2位”的正则表达式
另一方面,substr()
(不同的拼写,也许你有一个更强大的引擎,它支持正则表达式…)的所有实现(我所知道的)都将索引作为参数放入字符串中,没有正则表达式,甚至没有单字母通配符。
因此,我建议您研究子字符串()
[0,9]
是“单个0或9或冒号”的正则表达式。
您可能需要[0-9]{2}
,即“2位”的正则表达式
另一方面,substr()
(不同的拼写,也许你有一个更强大的引擎,它支持正则表达式…)的所有实现(我所知道的)都将索引作为参数放入字符串中,没有正则表达式,甚至没有单字母通配符。
因此,我建议您研究一下您的子字符串()
的文档。如果您为建议添加感谢,您将获得更好的回报,但这无助于解决问题。如果您为建议添加感谢,您将获得更好的回报,但这无助于解决问题。您是对的,先生,解决方案是使用6,2作为索引:从facturas fac中选择子字符串(CAST(fac.fecha as VARCHAR(10)),6,2非常感谢!你说得很对,先生,解决方案是使用6,2作为索引:从facturas fac选择子字符串(CAST(fac.fecha as VARCHAR(10)),6,2非常感谢!