第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如果日期相同,則查詢(xún) BETWEEN 不起作用

如果日期相同,則查詢(xún) BETWEEN 不起作用

PHP
慕勒3428872 2021-12-03 18:45:33
我有一個(gè) Oracle 查詢(xún),它使用“WHERE something BETWEEN FROM 和 TO”可以正常工作,如果 from/to 不一樣,但是當(dāng)它們是時(shí),它不起作用。我嘗試在 PHP 上驗(yàn)證 from/to 是否相同,然后我更改查詢(xún),將 BETWEEN 替換為“WHERE something = date”,但它也不起作用。這是我提到的帶有 PHP 驗(yàn)證的查詢(xún):<?php$db   = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 191.238.210.61)(PORT = 1521)))(CONNECT_DATA=(SID=opera)))";$conn = oci_connect("opera", "opera", $db);if (!$conn):#--- Si no hay conexión, muestra error y detiene la depuración    $m = oci_error();    echo $m['message'];elseif ($desde == $hasta):    $consulta = "                            SELECT                                CONFIRMATION_NO,                                NATIONALITY_DESC,                                GUEST_NAME,                                ADULTS,                                CHILDREN,                                RATE_CODE,                                TRACE_ON,                                DEPT_ID,                                SUM(ADULTS) OVER()                                || ' ADULTOS Y '                                || SUM(CHILDREN) OVER()                                || ' NI?OS' AS RESULT輸出示例:(使用 BETWEEN '05-SEP-19' 和 '10-SEP-19'):145580  EE.UU   JAMES LANTZKE   3   0   ALLIN5NMT   05/09/19    HK  6 ADULTOS Y 0 NI?OS167410  EE.UU   KATHARINE BLOOD 3   0   ALLIN5NMT   05/09/19    HK  6 ADULTOS Y 0 NI?OS概括:如果我做一個(gè)(在'05-SEP-19'和'10-SEP-19'之間)它會(huì)起作用如果我做一個(gè) (BETWEEN '05-SEP-19' 和 '05-SEP-19') 不起作用如果我做 (trace_on = '05-SEP-19') 不起作用我想知道如何使用 BETWEEN 查詢(xún)同一天或獲取搜索特定日期的結(jié)果的方法。提前致謝!
查看完整描述

2 回答

?
瀟湘沐

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超6個(gè)贊

日期始終具有以下組成部分:年、月、日、小時(shí)、分鐘和秒。用戶(hù)界面并不總是顯示所有這些組件(但它們?nèi)匀皇冀K存在)。


如果您的TRACE_ON列有日期2019-09-05T12:34:56并且您正在嘗試查看它是否是,BETWEEN '05-SEP-19' AND '05-SEP-19'那么 Oracle 將(假設(shè)匹配N(xiāo)LS_DATE_FORMAT會(huì)話(huà)參數(shù))將字符串轉(zhuǎn)換為午夜的日期并且2019-09-05T12:34:56 BETWEEN 2019-09-05T00:00:00 AND 2019-09-05T00:00:00為假,因此不會(huì)返回該行。


將您的查詢(xún)更改為:


SELECT

       -- ...

       TO_CHAR( TRACE_ON, 'YYYY-MM-DD HH24:MI:SS' ),

       -- ...

 FROM (

  SELECT

          -- ...

  FROM    GUEST_RSV_TRACES

          INNER JOIN NAME_RESERVATION

          ON ( guest_rsv_traces.resv_name_id = name_reservation.resv_name_id )

  WHERE   trace_on >= TO_DATE( '$desde', 'DD-MON-RR' )

  AND     trace_on <  TO_DATE( '$hasta', 'DD-MON-RR' ) + INTERVAL '1' DAY

  AND     -- ...

  GROUP BY

          -- ...

)


查看完整回答
反對(duì) 回復(fù) 2021-12-03
?
慕標(biāo)琳琳

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超9個(gè)贊

如果要與這些“日期”進(jìn)行比較的列是DATE數(shù)據(jù)類(lèi)型,則不應(yīng)將其與strings進(jìn)行比較,因?yàn)?#39;05-SEP-19'(以及所有其他值)是字符串,而不是日期。不要依賴(lài)隱式轉(zhuǎn)換 - 使用to_date函數(shù)或日期文字。


例如:


between date '2019-09-05' and date '2019-09-05'

或(假設(shè)您的 NLS 設(shè)置設(shè)置為英語(yǔ))


between to_date('05-sep-19', 'dd-mon-rr') and to_date('05-sep-19', 'dd-mon-rr')

因?yàn)?,如果你做?duì)了,那么在預(yù)期的工作之間??匆豢矗?/p>


SQL> create table test (id, datum) as

  2    select 1, date '2019-09-04' from dual union all

  3    select 2, date '2019-09-05' from dual union all   --> this ...

  4    select 3, date '2019-09-05' from dual union all   --> ... and this are between 05.09.2019 and 05.09.2019

  5    select 4, date '2019-09-06' from dual;


Table created.


SQL> alter session set nls_date_Format = 'dd.mm.yyyy';


Session altered.


SQL> select * From test

  2  where datum between date '2019-09-05' and date '2019-09-05';


        ID DATUM

---------- ----------

         2 05.09.2019

         3 05.09.2019


SQL>


查看完整回答
反對(duì) 回復(fù) 2021-12-03
  • 2 回答
  • 0 關(guān)注
  • 408 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)