PDA

View Full Version : سوال: استفاده از timestamp



#Faranak
دوشنبه 13 اردیبهشت 1389, 11:38 صبح
سلام .
بچه ها من می دونم که یکی ازکاربردهای دیتا تایپTimeStampبرای به دست آوردن اخیرترین
رکوردی است که وارد جدول شده است ولی نمی دونم چه طور ازاین ویزگی استفاده کنم تا آخرین رکوردی که وارد جدول شده بازیابی کنم.اگه کسی می دونه لطفاراهنمایی کنه .
ممنون.

محمد سلیم آبادی
دوشنبه 13 اردیبهشت 1389, 11:50 صبح
سلام،
ببینید این مطالب از Book Online نیازتون را بر طرف می کند یا نه:


@@DBTS returns the last-used timestamp value of the current database. A new timestamp value is generated when a row with a timestamp column is inserted or updated.

USE AdventureWorks;GOSELECT @@DBTS

علیرضا مداح
دوشنبه 13 اردیبهشت 1389, 13:23 عصر
سلام،
وقتی سطری از جدولی را که حاوی ستونی از نوع timestamp می باشد را درج یا به روز رسانی می کنید، مقدار این ستون به طور خودکار تغییر می کند، شما می توانید برای حل مشکل همزمانی از این نوع داده استفاده کنید،/

محمد سلیم آبادی
دوشنبه 13 اردیبهشت 1389, 14:06 عصر
سلام،
وقتی سطری از جدولی را که حاوی ستونی از نوع timestamp می باشد را درج یا به روز رسانی می کنید، مقدار این ستون به طور خودکار تغییر می کند، شما می توانید برای حل مشکل همزمانی از این نوع داده استفاده کنید،/

کاربر می خواهد آخرین رکوردی که در جدولش درج شده را با کمک این نوع داده بدست آورد، که من در پست اول در این تاپیک به آن اشاره کردم یعنی استفاده از تابع/متغیر سیستمی DBTS@@.

که طریقه ی استفاده از آن می تونه به این شکل باشه:


SELECT * FROM your_real_table_name_here WHERE TimeStamp_column_here = @@DBTS;-- justi it

armiin
دوشنبه 13 اردیبهشت 1389, 19:19 عصر
طبیعتا میتونید تو Order By هم استفاده کنید !

#Faranak
دوشنبه 13 اردیبهشت 1389, 19:52 عصر
کاربر می خواهد آخرین رکوردی که در جدولش درج شده را با کمک این نوع داده بدست آورد، که من در پست اول در این تاپیک به آن اشاره کردم یعنی استفاده از تابع/متغیر سیستمی DBTS@@.


که طریقه ی استفاده از آن می تونه به این شکل باشه:



SELECT * FROM your_real_table_name_here WHERE TimeStamp_column_here = @@DBTS;-- justi it


سلام ممنون از راهنمایی خوبتون.بله دقیقا همینطوراست. فقط این که این متغیر سیستمی رو چه جوری مقدار بدم آیا
خودش جدیدترین مقداررا می گیرد ونیازبه دخالت برنامه نویس نیست؟لطفا دراین مورد بیشترراهنمایی کنید
ممنون

#Faranak
دوشنبه 13 اردیبهشت 1389, 19:58 عصر
سلام،
شما می توانید برای حل مشکل همزمانی از این نوع داده استفاده کنید،/

می شه لطف کنید یک مثال در این مورد بزنید.
ممنون

محمد سلیم آبادی
دوشنبه 13 اردیبهشت 1389, 20:21 عصر
سلام ممنون از راهنمایی خوبتون.بله دقیقا همینطوراست. فقط این که این متغیر سیستمی رو چه جوری مقدار بدم آیا
خودش جدیدترین مقداررا می گیرد ونیازبه دخالت برنامه نویس نیست؟لطفا دراین مورد بیشترراهنمایی کنید
ممنون

فلسفه متغیرهای سیستمی این است که خودشون بروز میشن و نیاز به داخل کاربر ندارن. مثل identity@@ .

متغیر DBTS@@ آخرین مقداری که در ستونی با نوع timestamp درج یا بروز رسانی شده است را درخودش نگهداری می کند.

کافیه SELECT اش کنید تا به مقدارش پی ببرین.