Skocz do zawartości

Problem, allegro paczkomaty.

Polecane posty

declare @nazwa_dostawy nvarchar(100)
declare @data_od datetime
declare @data_do datetime
-- TUTAJ NALEŻY WPISAC WLASCIWE DANE
set @nazwa_dostawy = 'Paczkomaty 24/7 po przedpłacie'
set @data_od = '2017-06-01'
set @data_do = '2017-07-01'
--
update pc__package set pc_LockDate = GETDATE() 
where pc_DeliveryId = (select dm_Id from sl_Delivery where dm_Name = @nazwa_dostawy)
and  pc_Status = 0
and pc_CreationDate between @data_od and @data_do

Link to postu

W zapytaniu są 3 warunki, jeden to data utworzenia paczki, drugi to nazwa dostawy a trzeci to status paczki Czeka na utworzenie w systemie. Któryś z nich musi być zatem niespełniony dla tych wszystkich paczek. Proszę się upewnić, że nazwa dostawy jest identyczna (zwłaszcza ze spacjami na końcu) jak ta w słowniku - najlepiej skopiować ze słownika nazwę.

Link to postu

W takim razie może status paczek jest inny niż się spodziewam. Co zwraca to zapytanie SQL?

declare @nazwa_dostawy nvarchar(100)
declare @data_od datetime
declare @data_do datetime
-- TUTAJ NALEŻY WPISAC WLASCIWE DANE
set @nazwa_dostawy = 'Paczkomaty 24/7 po przedpłacie'
set @data_od = '2017-06-01'
set @data_do = '2017-07-01'
select pc_CreationDate, pc_LockDate, pc_SentStatus from pc__package 
where pc_DeliveryId = (select dm_Id from sl_Delivery where dm_Name = @nazwa_dostawy)
and pc_CreationDate between @data_od and @data_do

 

Link to postu

Ok, dziękuję za pomoc i informacje. Chciałbym jeszcze wykorzystać to polecenie SQL dla allegro paczkomatów ale zwraca mi taki błąd:

 

 

The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.

Stos wywołań:

  w System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)

  w System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)

  w System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)

  w System.Data.SqlClient.SqlDataReader.ConsumeMetaData()

  w System.Data.SqlClient.SqlDataReader.get_MetaData()

  w System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)

  w System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)

  w System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)

  w System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)

  w System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)

  w System.Data.SqlClient.SqlCommand.ExecuteReader()

  w Serwisant.SelloDatabase.ExecuteQuery(String query, Int32& affectedRows)

  w Serwisant.CustomCommandWindow.backgroundWorkerExecutingCommand_DoWork(Object sender, DoWorkEventArgs e)

  w System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)

 

Link to postu

W spoilerze jest dokładne polecenie:

 

declare @nazwa_dostawy nvarchar(100)

declare @data_od datetime

declare @data_do datetime

-- TUTAJ NALEŻY WPISAC WLASCIWE DANE

set @nazwa_dostawy = 'Allegro Paczkomaty 24/7 po przedpłacie'

set @data_od = '2017-06-23'

set @data_do = '2017-06-31'

--

update pc__package set pc_LockDate = GETDATE()

where pc_DeliveryId = (select dm_Id from sl_Delivery where dm_Name = @nazwa_dostawy)

and  pc_Status = 0

and pc_CreationDate between @data_od and @data_do

 

Link to postu

A jak jest ustawiony format daty w ustawieniach regionalnych?

 

Problem jest z zapisem dat '2017-06-23' które mogą być zapisane w inny sposób, np '23-06-2017' lub '06-23-2017'. Komunikat błędu wskazuje, że SQL server próbuje konwertować ten napis na datę i przykładowo traktuje dni jako miesiące przez co pojawia się informacja o przekroczeniu zakresu (out of range).

Link to postu

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.
Uwaga: Twój wpis zanim będzie widoczny, będzie wymagał zatwierdzenia moderatora.

Użytkownik forum
Odpowiedz...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

×
×
  • Dodaj nową pozycję...