这对我来说有点混乱...我有一个名为 DepositCash 的表格,并且用户以某种方式在varchar字段中输入存款日期和他/她的名字...系统日期仅获取今天的日期...... 任何人都有关于如何在varchar字段(descriptn)中获取日期而不获取名称的想法?这是否有关于如何使用Like子句获取它的查询?
这是表格的内容。
答案 0 :(得分:2)
对于您提供的格式,您可以使用substring_index()
:
select substring_index(descriptn, ' ', 1)
您使用str_to_date()
实际将值转换为日期:
select str_to_date(substring_index(descriptn, ' ', 1), '%m/%d/%Y')
答案 1 :(得分:2)
Gordon字面上回答了你的问题,但我认为最好的答案是不将日期存储为文本,当然不在与名称相同的字段中。相反,请考虑规范化您的表格,如下所示:
DATE | AMOUNT | DEPOSIT_DATE | NAME
6/1/2017 | 43184.25 | 6/2/2017 | Marie
6/2/2017 | 10563.00 | 6/3/2017 | Jacq
6/2/2017 | 37065.50 | 6/3/2017 | Abby
如果在您的应用层中由于某种原因您在同一字段中收到日期和名称,则可以轻松地使用某些正则表达式将它们分开,然后将它们存储到表格中的单独列中。