avatar_RadeoN

Как решить проблему с ExpireDate в CashShop

Автор RadeoN, 2017 Фев. 10, 23:49

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Ключевые слова [SEO] mu onlinecashshopexpiredate

RadeoN

Привет, такая вот проблема...

Покупаю 1 Seal на 1 день и после свича пишет что ему остался 16 дней

T_PeriodInfo


как будто месяц и день на ExpireDate записаны наоборот


Вот код WZ_PeriodItemInsert

USE [MuOnline]
GO
/****** Object:  StoredProcedure [dbo].[WZ_PeriodItemInsert]    Script Date: 01/29/2016 12:34:58 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER Procedure [dbo].[WZ_PeriodItemInsert]

@userGuid        int,
@CharacterName    varchar(10),
@ItemCode        int,
@OptiOnType        tinyint,
@EffectType1        tinyint,
@EffectType2        tinyint,
@TotalUsePeriod    int,
@ExpireDate        varchar(20)
AS
BEGIN
DECLARE  @ErrorCode int
DECLARE  @periodItemIndex int

SET  @ErrorCode = 0
SET  @periodItemIndex = 0

SET XACT_ABORT ON
SET NOCOUNT ON

BEGIN TRANSACTION

SELECT  @periodItemIndex = PeriodIndex FROM T_PeriodItem_Info WHERE UserGuid =  @userGuid AND CharacterName =  @CharacterName AND OptionType =  @OptiOnType AND UsedInfo = 1

--IF (  @periodItemIndex != 0 )
--BEGIN
--    UPDATE T_PeriodItem_Info SET UsedInfo = 0 WHERE UserGuid =  @userGuid AND CharacterName =  @CharacterName AND OptionType =  @OptiOnType AND UsedInfo = 1
--END

INSERT INTO T_PeriodItem_Info (UserGuid, CharacterName, ItemCode, OptionType, EffectType1, EffectType2, LeftTime, BuyDate, ExpireDate, UsedInfo) VALUES
(  @userGuid,  @CharacterName, @ItemCode,  @OptiOnType,  @EffectType1,  @EffectType2, @TotalUsePeriod, GETDATE(),  @ExpireDate, 1 )
IF(  @@ERROR <> 0 )
BEGIN
SET  @ErrorCode = 2
END

IF (  @ErrorCode  <> 0 )
ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION

SELECT  @ErrorCode

SET NOCOUNT OFF
SET XACT_ABORT OFF
END



и WZ_PeriodItemInsertEx

USE [MuOnline]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[WZ_PeriodItemInsertEx]
@userGuid            int,
@CharacterName        varchar(10),
@ItemType            tinyint,
@ItemCode            int,
@EffectCategory        tinyint,
@EffectType1        tinyint,
@EffectType2        tinyint,
@serial                bigint,
@Duration            int,
@BuyDate            bigint,
@ExpireDate            bigint
AS
BEGIN
DECLARE  @ErrorCode int
DECLARE  @periodItemIndex int

SET  @ErrorCode = 0
SET  @periodItemIndex = 0

SET XACT_ABORT ON
SET NOCOUNT ON

BEGIN TRANSACTION

SELECT  @periodItemIndex = PeriodIndex FROM PeriodItemEx WHERE UserGuid =  @userGuid AND Name =  @CharacterName AND ItemCode = @ItemCode AND ItemType = @ItemType AND OptionType =  @EffectCategory AND ItemType != 2

IF (  @periodItemIndex != 0 )
BEGIN
DELETE FROM PeriodItemEx WHERE UserGuid =  @userGuid AND Name =  @CharacterName AND ItemCode = @ItemCode AND ItemType = @ItemType AND OptionType =  @EffectCategory
END

INSERT INTO PeriodItemEx (UserGuid, Name, ItemType, ItemCode, EffectType1, EffectType2, OptionType, SerialCode, Duration, BuyDateConvert, ExpireDateConvert) VALUES
(  @userGuid,  @CharacterName, @ItemType, @ItemCode,  @EffectType1,  @EffectType2,  @EffectCategory,  @serial,  @Duration, @BuyDate,  @ExpireDate)
IF(  @ERROR <> 0 )
BEGIN
SET  @ErrorCode = 2
END

IF (  @ErrorCode  <> 0 )
ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION

SELECT  @ErrorCode

SET NOCOUNT OFF
SET XACT_ABORT OFF
END

Profesor08

И что же это должно значить? Случайно не дело ли в форматах дат? А это так. А раз так, то надо правильно с ними работать. У тебя в SQL Server один формат, а в процедуру дата прилетает в другом формате.

RadeoN

Цитата: Profesor08 от 2017 Фев. 11, 09:43  И что же это должно значить? Случайно не дело ли в форматах дат? А это так. А раз так, то надо правильно с ними работать. У тебя в SQL Server один формат, а в процедуру дата прилетает в другом формате.

Это заметил, где могу в SQL это править ?

Profesor08

А с чего ты взял, что надо в SQL что-то менять? Твой SQL ставит дату в верном формате, но в процедуру прилетает дата в другом формате. Откуда она прилетает я не знаю.

Но раз так хочешь: How to format datetime & date in Sql Server

RadeoN

Цитата: Profesor08 от 2017 Фев. 11, 12:51  А с чего ты взял, что надо в SQL что-то менять? Твой SQL ставит дату в верном формате, но в процедуру прилетает дата в другом формате. Откуда она прилетает я не знаю.

Но раз так хочешь: How to format datetime & date in Sql Server


Эти скрипты нашел вчера, только не могу понять что сними делать, может кто то указать в мой процедуры где править чтоб был запрос правельный ?

Похожие темы (5)