Python 在这种情况下,如何获取MySQL中的最后一行?
我有检查日期的表格 结构是Python 在这种情况下,如何获取MySQL中的最后一行?,python,mysql,sql,Python,Mysql,Sql,我有检查日期的表格 结构是 Curr_date 150120 160120 170120 180120 (日期格式为DDMMYY) 只有一列是“主键” 现在我想获取保存在表中的最新日期或当前日期(该日期不总是最后一行) 例如: 最新添加日期为:010122 然后,记录会显示为 Curr_date 010122 <--- The Latest date is on the top 150120 160120 170120 当前日期 010122如果是日
Curr_date
150120
160120
170120
180120
(日期格式为DDMMYY)
只有一列是“主键”
现在我想获取保存在表中的最新日期或当前日期(该日期不总是最后一行)
例如:
最新添加日期为:010122
然后,记录会显示为
Curr_date
010122 <--- The Latest date is on the top
150120
160120
170120
当前日期
010122如果是日期栏,则不应执行此操作:
SELECT MAX(Curr_date) FROM table_name
假设curr_date的数据类型为string。以下查询将适用于您
select curr_date
, STR_TO_DATE(curr_date,'%d%m%Y')
from test
order by STR_TO_DATE(curr_date,'%d%m%Y') desc;
如果将字符串拆分为其组件YY
、MM
和DD
部分,则可以按其降序(年、月、日期顺序)排序并获取最新值:
SELECT *
FROM dates
ORDER BY RIGHT(Curr_date, 2) DESC, SUBSTR(Curr_date, 3, 2) DESC, LEFT(Curr_date, 2) DESC
LIMIT 1
输出:
Curr_date
180120
max
和groupby
都可以使用一个完整的表达式,您可以使用该表达式将字符串重新组合成正确排序的内容,可以使用字符串操作或解析到正确的日期
除此之外,你应该把整个东西烧成灰烬,如果它是90年代以后建造的,就应该把设计它的人烧掉。将年份存储为2位数和将东西存储在DMY中都是很糟糕的想法。你能试着用这个吗,按当前日期排序->从表名称中选择*按当前日期排序描述限制1如果您在mysql表模式@KAKAKAKISo中为列指定了正确的数据类型,它肯定会起作用。实际上,这里的确切问题是如何将字符串转换为日期,因为所选答案将全部选中,并按转换日期和正确的答案更像是:
从测试顺序中选择日期列,按STR_TO_date(日期列,'%d%m%Y')描述限制1代码>不,那不会。。。正如我所解释的,它将首先显示更大的数字。但对我们来说,最新的是010122,比110120小。那不行,我不明白,是数字还是日期类型?那是字符串@VBoka@KAKAKAKI好。。。这应该是问题中的第一句话:)嗨@Nick,如果列是int,这会起作用,但如果列是varchar,则不会:@VBoka您试图在varchar列中插入一个整数,当它被解析时,前导的0被剥离。将值设置为字符串,它就可以正常工作:@VBoka没有问题。谢谢你的支持。