PDA

View Full Version : select رکورد هایی که تاریخ درج شان سه روز پیش است



delphi_programmer_2010
شنبه 06 فروردین 1390, 09:37 صبح
میخوام با تابع getdate() تاریخ امروز رو از سیستم بگیرم بعد رکوردهایی رو از جدولم SELECT کنم که فیلد UNTILDATE انها سه روز پیش است.در واقع باید تاریخ امروز رو سه روز ازش کم کنم.
تابعی در sqlهست؟کمک کنید لطفا

m_omrani
شنبه 06 فروردین 1390, 11:29 صبح
بله. اسمش DATEADD است. مثال:

select DATEADD(DAY,-3,GETDATE())

delphi_programmer_2010
شنبه 06 فروردین 1390, 15:54 عصر
تشکر.این راه حل رو یک نفر دیگه بهم گفته بود
فکر کنم خودشه!!!!!!!!

delphi_programmer_2010
شنبه 06 فروردین 1390, 16:11 عصر
تابع getdate با چه فرمتی تاریخ رو بر میگردونه ؟
میتونم این مقدار رو ببینم ؟چطوری ؟

delphi_programmer_2010
شنبه 06 فروردین 1390, 16:19 عصر
تابع getdate مقدار 15:38:41.690ا26-03-2011 رو برمیگردونه (تاریخ و زمان)
من میخوام فقط تاریخ رو ازش بگیرم بعد اونو به فرمت 20110326 در بیارم بعد تبدیل کنم به تاریخ شمسی که در نهایت میشه:13900106
میشه بگید من چطور این کارو انجام بدم ؟

ممنون.

m_omrani
شنبه 06 فروردین 1390, 17:09 عصر
با استفاده از تابع CONVERT. چيزي مثل اين:

REPLACE(CONVERT(VARCHAR(10),GETDATE(),111),'/','')

delphi_programmer_2010
یک شنبه 07 فروردین 1390, 07:43 صبح
USE [abfa5]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[SetDate]

AS
BEGIN
DECLARE @Date datetime
SET @Date = (DATEADD(DAY,-3,GETDATE()))
select * from teldebt where tstdate = @Date

REPLACE(CONVERT(VARCHAR(10),@Date,112),'-','')


END

delphi_programmer_2010
یک شنبه 07 فروردین 1390, 07:44 صبح
میتونید اینو به یه جایی برسونید که کامل جواب بده ؟؟؟؟؟؟؟

behrouzlo
یک شنبه 07 فروردین 1390, 10:03 صبح
با پروسه زیر تست کنید، تابع dbo.MiladiTOShamsi یک تابع برای تبدیا تاریخ میلادی به شمسی است که می توانید با جستجو در سایت نمونه های مشابه زیادی را پیدا کنید

USE [abfa5]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[SetDate]

AS
BEGIN
DECLARE @Date date
SET @Date = (DATEADD(DAY,-3,GETDATE()))
Declare @ShamsiDate varchar(10) = dbo.MiladiTOShamsi(@Date)
Declare @ShortDate varchar(10) = Replace(@Date,'/',@ShamsiDate)
select * from teldebt where tstdate = @ShortDate
END