Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16

Discussione: DateAdd in MySQL

  1. #1
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870

    DateAdd in MySQL

    Ciao a tutti.

    Se ho questa data: 2006/09/04 in MySQL

    e devo ottenere i 5 giorni successivi:

    codice:
    j = Weekday(cDate(strDUEDATE)) 
    x =   WeekdayName(Weekday(cDate(strDUEDATE)))
    
    for i = 0 to datediff("d",cDate(strDUEDATE),cDate(strDUEDATE2))
    
       strDUEDATE = dateadd("d", cDate(strDUEDATE), i)
    
    next
    Perchè risponde con:

    Tipo di errore:
    Microsoft OLE DB Provider for ODBC Drivers (0x80040E31)
    [MySQL][ODBC 3.51 Driver][mysqld-5.0.24-community-nt]Incorrect date value: '-2011' for column 'DueDate' at row 1

    :master:

  2. #2
    stai impazzendo dietro a queste date eh?

    codice:
    j = Weekday(cDate(strDUEDATE)) 
    x =   WeekdayName(Weekday(cDate(strDUEDATE)))
    
    temp=datediff("d",cDate(strDUEDATE),cDate(strDUEDATE2))
    
     strDUEDATE = dateadd("d",temp, cDate(strDUEDATE))

    poi fatti stampare la query senza eseguirla per vedere se non c'è un qualche errore di sintassi

  3. #3
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Originariamente inviato da santino83_11_04
    stai impazzendo dietro a queste date eh?
    Sostanzialmente si

    cmq non ho capito cosa hai scritto e nella query l'unica cosa anomala che noto è questa:

    codice:
    INSERT INTO tbl (DueDate, DueDate2) values ('05/09/2006, '2006-09-08')

  4. #4
    mysql non accetta questo formato 05/09/2006

  5. #5
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Originariamente inviato da santino83_11_04
    mysql non accetta questo formato 05/09/2006
    Infatti, faccio così:

    strDUEDATE = dateadd("d", cDate(strDUEDATE), i)
    strDUEDATE_1 = formatDBDate(strDUEDATE,"mysql")

    Ma nella settimana dal 04/09 al 08/09/2006 salta i gg. 6 - 8 ed inserisce 10 e 14...

  6. #6
    mi stampi la query generata?
    san imente saluta

    * http://simonecingano.it *

  7. #7
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Originariamente inviato da imente
    mi stampi la query generata?
    Settimana dal 18/09 al 22/09/2006:

    codice:
    INSERT INTO tbl (DueDate, DueDate2) values ('2006-09-18', '2006-09-22')
    
    INSERT INTO tbl (DueDate, DueDate2) values ('2006-09-19', '2006-09-22')
    
    INSERT INTO tbl (DueDate, DueDate2) values ('2006-09-21', '2006-09-22')
    
    INSERT INTO tbl (DueDate, DueDate2) values ('2006-09-24', '2006-09-22')
    
    INSERT INTO tbl (DueDate, DueDate2) values ('2006-09-28', '2006-09-22')
    Salta il 20 ed il 22/09 ed inserisce 24 e 28/09... :master:

  8. #8
    mi sembra un errore di codice

    mi fai vedere come generi quelle query
    san imente saluta

    * http://simonecingano.it *

  9. #9
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Originariamente inviato da imente
    mi sembra un errore di codice

    mi fai vedere come generi quelle query
    codice:
    'INIZIA NUOVO CODICE PER ESCLUSIONE LAVORI DAL FINE SETTIMANA
    
    strDUEDATE = (Request.Form("dal_giorno"))
    strDUEDATE = formatGMTDate(cdate(strDUEDATE),0,"yyyy/mm/dd")
    
    strDUEDATE2 = (Request.Form("al_giorno"))
    strDUEDATE2 = formatGMTDate(cdate(strDUEDATE2),0,"yyyy/mm/dd")
    
    j = Weekday(cDate(strDUEDATE)) 
    x =   WeekdayName(Weekday(cDate(strDUEDATE)))
    for i = 0 to datediff("d",cDate(strDUEDATE),cDate(strDUEDATE2))
    
    oggi = period(i+j-1,7)+1
    
    strDUEDATE = dateadd("d", cDate(strDUEDATE), i)
    strDUEDATE_1 = formatDBDate(strDUEDATE, "mysql")
    
      strSql = "INSERT INTO tbl "
      strSQL = strSQL & "(DueDate, "
      strSQL = strSQL & " DueDate2) "
      strSQL = strSQL & " values "
      strSQL = strSQL & " ("& strDUEDATE_1 &", "
      strSQL = strSQL & " "& formatDBDate(strDUEDATE2,"mysql") &")"
    
      cn.execute strSql
    
    Next

  10. #10
    mmm

    mi sembra evidente :P

    tu aggiungi i

    invece devi aggiungere 1

    codice:
    strDUEDATE = dateadd("d", cDate(strDUEDATE), 1)
    ricordati però di farlo alla fine del ciclo non all'inizio (e ovviamente prima del NEXT)

    inoltre c'è un passaggio inutile

    ecco lo script corretto

    codice:
    'INIZIA NUOVO CODICE PER ESCLUSIONE LAVORI DAL FINE SETTIMANA
    
    strDUEDATE = (Request.Form("dal_giorno"))
    strDUEDATE2 = (Request.Form("al_giorno"))
    
    j = Weekday(cDate(strDUEDATE)) 
    x =   WeekdayName(Weekday(cDate(strDUEDATE)))
    
    for i = 0 to datediff("d",cDate(strDUEDATE),cDate(strDUEDATE2))
    
      oggi = period(i+j-1,7)+1
    
      strDUEDATE_1 = formatDBDate(strDUEDATE, "mysql")
    
      strSql = "INSERT INTO tbl "
      strSQL = strSQL & "(DueDate, "
      strSQL = strSQL & " DueDate2) "
      strSQL = strSQL & " values "
      strSQL = strSQL & " ("& strDUEDATE_1 &", "
      strSQL = strSQL & " "& formatDBDate(strDUEDATE2,"mysql") &")"
    
      cn.execute strSql
    
      strDUEDATE = dateadd("d", cDate(strDUEDATE), 1)
    
    Next
    che bello vedere script che usano un sacco delle mie funzioni
    san imente saluta

    * http://simonecingano.it *

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.