使用MySql仅在varchar数据字段中获取日期

时间:2017-06-16 02:40:22

标签: mysql sql

这对我来说有点混乱...我有一个名为 DepositCash 的表格,并且用户以某种方式在varchar字段中输入存款日期和他/她的名字...系统日期仅获取今天的日期...... 任何人都有关于如何在varchar字段(descriptn)中获取日期而不获取名称的想法?这是否有关于如何使用Like子句获取它的查询?

这是表格的内容。

enter image description here

2 个答案:

答案 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

如果在您的应用层中由于某种原因您在同一字段中收到日期和名称,则可以轻松地使用某些正则表达式将它们分开,然后将它们存储到表格中的单独列中。