有没有办法将当前日期与以 VARCHAR 格式存储在数据库中的日期进行比较?

Posted

技术标签:

【中文标题】有没有办法将当前日期与以 VARCHAR 格式存储在数据库中的日期进行比较?【英文标题】:Is there a way to compare current date with date stored in database in VARCHAR format? 【发布时间】:2013-03-02 11:09:54 【问题描述】:

我有一组日期,我以 varchar 格式存储在我的数据库中。我使用 Varchar 的原因是因为我使用 jquery datepicker。

有没有办法让我将日期与当前日期进行比较。

【问题讨论】:

可能重复***.com/questions/5619202/… @AshReva 我不确定那是重复的。我想将当前日期与我存储在数据库中的日期进行比较 如何以 varchar 格式存储日期?给我样品 【参考方案1】:

您可以尝试使用datejs library。

您可以使用Date.parse 解析您的字符串,然后使用Date.compare 来比较两个日期。

$.get('date.php', function(date) 
    alert(Date.compare(Date.today(), Date.parse(date));
);

【讨论】:

您可以添加更多内容吗?在这一点上,它应该是评论而不是答案。我什至看不出它与问题有什么关系。【参考方案2】:

您可以使用 getDate、getMonth 和 getFullYear 来获取存储在 varchar 和 current 中的日期的日期、月份和年份,并分别进行比较。该解决方案不是那么优雅,但会起作用。

var dt = new Date('2011-01-11'); //replace this hard coded date with one from database
var todaydate = new Date() //todays date

//i have added +1 in getMonth as its index start from 0. so if month is Jan then it returns 0 instead of 1. Hence i added +1 
if (dt.getDate() == todaydate.getDate() && dt.getMonth()+1 == todaydate.getMonth()+1 && dt.getFullYear() == todaydate.getFullYear())

    alert('match');

else

     alert('not match');

也可以看到这个小提琴here

【讨论】:

以上是关于有没有办法将当前日期与以 VARCHAR 格式存储在数据库中的日期进行比较?的主要内容,如果未能解决你的问题,请参考以下文章

当前月份的日期格式问题

如何在 SQL Server中 将日期格式化

SQL - 日期存储为 varchar 但格式化为 Julian Date

有没有办法改变日期格式?

数据库中存储日期的字段类型到底应该用varchar还是datetime

如何在 SQL Server中 将日期格式化