查询与格式M / d / yyyy的选择两个日期之间的数据(Query to select data

2019-08-16 17:27发布

我面临的问题,当我试图从表中两个日期之间选择记录。

中号使用下面的查询

select * from xxx where dates between '10/10/2012' and '10/12/2012'

此查询对我的作品,但是当日期是在像2013年1月1日的格式..它不工作..

PLZ尽快解决我的问题。

Answer 1:

该解决方案提供CONVERT_IMPLICIT操作谓词你的病情

SELECT * 
FROM xxx 
WHERE CAST(dates AS date) BETWEEN '1/1/2013' and '1/2/2013'

要么

SELECT * 
FROM xxx 
WHERE CONVERT(date, dates, 101) BETWEEN '1/1/2013' and '1/2/2013'

演示上SQLFiddle



Answer 2:

试试这个

SELECT * 
FROM xxx 
WHERE dates BETWEEN STR_TO_DATE('10/10/2012', '%m/%d/%Y') 
  AND STR_TO_DATE('10/12/2012', '%m/%d/%Y')  ;

要么

SELECT * 
FROM xxx 
WHERE STR_TO_DATE(dates , '%m/%d/%Y') BETWEEN STR_TO_DATE('10/10/2012', '%m/%d/%Y') 
  AND STR_TO_DATE('10/12/2012', '%m/%d/%Y')  ;


Answer 3:

你必须拆分日期时间,然后将其与像DD / MM / YYYY你想要的格式存储。 那么你可以使用此查询与之间,但我用这个becasue它会搜索自己的数据库中每一个数据的异议,所以我建议你可以使用DATEDIFF。

        Dim start = txtstartdate.Text.Trim()
        Dim endday = txtenddate.Text.Trim()
        Dim arr()
        arr = Split(start, "/")
        Dim dt As New DateTime
        dt = New Date(Val(arr(2).ToString), Val(arr(1).ToString), Val(arr(0).ToString))
        Dim arry()
        arry = Split(endday, "/")
        Dim dt2 As New DateTime
        dt2 = New Date(Val(arry(2).ToString), Val(arry(1).ToString), Val(arry(0).ToString))

        qry = "SELECT * FROM [calender] WHERE datediff(day,'" & dt & "',[date])>=0 and datediff(day,'" & dt2 & "',[date])<=0 "

在这里,我已经使用DD / MM / YYYY格式。



Answer 4:

默认情况下,Mysql的存储和“YYYY / MM / DD”格式返回“日期”数据类型值。 所以,如果我们要显示在不同的格式日期,那么我们必须格式化日期值按我们的脚本语言要求

和什么是列的数据类型,并以哪种方式你是存储价值的方式。



Answer 5:

$Date3 = date('y-m-d');
$Date2 = date('y-m-d', strtotime("-7 days"));
SELECT * FROM disaster WHERE date BETWEEN '".$Date2."' AND  '".$Date3."'


Answer 6:

select * from xxx where dates between '2012-10-10' and '2012-10-12'

我总是用YYYY-MM-DD在我的意见,从未发生过任何问题。 另外,它是可读的,不模棱两可。
你应该知道,使用BETWEEN可能不会返回你所期望的一个DATETIME字段,因为它可以消除记录日期'2012-10-12 08:00'的例子。
我宁愿使用where dates >= '2012-10-10' and dates < '2012-10-13' (比次日低级)



Answer 7:

SELECT * FROM tablename WHERE STR_TO_DATE(columnname, '%d/%m/%Y')
  BETWEEN STR_TO_DATE('29/05/2017', '%d/%m/%Y')
    AND STR_TO_DATE('30/05/2017', '%d/%m/%Y')

它完美:)



Answer 8:

用这个

select * from xxx where dates between '10/oct/2012' and '10/dec/2012'

您输入的字符串,所以给一个月的名称根据格式...



Answer 9:

试试这个:

select * from xxx where dates between convert(datetime,'10/10/2012',103) and convert(dattime,'10/12/2012',103)


Answer 10:

DateTime dt1 = this.dateTimePicker1.Value.Date;
DateTime dt2 = this.dateTimePicker2.Value.Date.AddMinutes(1440);
String query = "SELECT * FROM student WHERE sdate BETWEEN '" + dt1 + "' AND '" + dt2 + "'";


文章来源: Query to select data between two dates with the format m/d/yyyy