একটি ডেটটাইম ডাটাবেস ক্ষেত্রটি "এখন" এ সেট করুন


99

VB.net কোডে, আমি এসকিউএল পরামিতিগুলির সাথে অনুরোধগুলি তৈরি করি। এটি আমি ডেটটাইম প্যারামিটারটি তারিখটাইম মানটির জন্য সেট করেছিলাম ow এখন, আমার অনুরোধটি কেমন হবে?

UPDATE table SET date = "2010/12/20 10:25:00";

বা

UPDATE table SET date = GETDATE();

প্রথম ক্ষেত্রে আমি নিশ্চিত যে প্রতিটি রেকর্ড ঠিক একই সময়ে সেট করা হবে। দ্বিতীয় ক্ষেত্রে এটি ডিবিএমএস কীভাবে অনুরোধটি প্রসেস করে তা নির্ভর করে। যা আমাকে দ্বিতীয় প্রশ্নের দিকে নিয়ে যায়: এসকিউএল সার্ভার NOW () দিয়ে কোনও বড় টেবিল আপডেট করার সময় একই তারিখ এবং সময় সেট করে?

সম্পাদনা করুন: এখন () যা (এসকিউএল সার্ভারে বিদ্যমান নেই) প্রতিস্থাপন GETDATE () এর মাধ্যমে।

উত্তর:


179

এসকিউএল এ আপনার ব্যবহার করা দরকার GETDATE():

UPDATE table SET date = GETDATE();

কোন NOW()কাজ নেই।


আপনার প্রশ্নের উত্তর দিতে:

একটি বড় সারণীতে, যেহেতু প্রতিটি সারিটির জন্য ফাংশনটি মূল্যায়ন করা হয়, আপনি আপডেট ক্ষেত্রের জন্য বিভিন্ন মান অর্জন করতে পারেন।

সুতরাং, আপনার প্রয়োজনীয়তা যদি এই একই তারিখে সেট করা থাকে তবে আমি এর মতো কিছু করতে চাই (অনির্ধারিত):

DECLARE @currDate DATETIME;
SET @currDate = GETDATE();

UPDATE table SET date = @currDate;

ওফস হ্যাঁ এখন () মাইএসকিএল, দুঃখিত। তবে প্রশ্ন থেকেই যায়।
থিবল্ট উইটজিগ

ঠিক আছে ধন্যবাদ. সুতরাং আমার অনুরোধে সত্যিকারের তারিখটি (কোড থেকে) স্থাপন করা নিশ্চিত করা দরকার GETDATE নয় () আপনি কি জানেন যে এটি এসকিউএলপারমিটারকে ডেটটাইম হিসাবে সেট করছে। এখন এটি করবে বা যদি আমি প্রথমে তারিখটিকে স্ট্রিংয়ে রূপান্তর করি এবং তারপর অনুরোধে যোগ করুন?
থিবল্ট উইটজিগ

@@ থিবল্ট উইটজিগ - আপনি পারতেন। অথবা আপনি যে এসকিউএল পোস্ট করেছি তা ব্যবহার করতে পারেন (বর্তমান তারিখটি একটি ভেরিয়েবলে রূপান্তর করুন এবং টেবিলের মধ্যে তারিখটি নির্ধারণ করতে ভেরিয়েবলটি ব্যবহার করুন - ভেরিয়েবলের মান পরিবর্তন হবে না)।
ওলেড

আপনি যদি সমস্ত রেকর্ডের জন্য একই সময় রাখতে চান তবে এখনই প্যারামিটারাইজড এসকিউএল ব্যবহার করে একটি প্যারামিটার হিসাবে পাস করুন। এইভাবে, আপনার স্ট্রিং পার্সিং বা স্থানীয়করণের ডেটা স্ট্রিং ফর্ম্যাটিংয়ের সমস্যাগুলির বিষয়ে চিন্তা করতে হবে না।
জিম উলি

20

GETDATE () এর বিকল্প হ'ল CURRENT_TIMESTAMP। ঠিক একই জিনিস করে।


7
CURRENT_TIMESTAMPসত্যিকারের এসকিউএল স্ট্যান্ডার্ড তাই কিছু যুক্তি দিতে পারে এটি পছন্দসই সিনট্যাক্স।
টনি এল।

এটা বেশ ভুল। আমি এই দুটিয়ের ডকগুলি কেবল পড়েছি এবং এটি আমার কাছে স্পষ্টই প্রতীয়মান হয় যে সেগুলি "একই জিনিস একই নয়"। এই প্রশ্নটি এর জন্য আরও বিস্তারিত ব্যাখ্যা সরবরাহ করে: স্ট্যাকওভারফ্লো
ম্লাদেন বি।

7

GETDATE () ব্যবহার করুন

ডেটাবেস সময় অঞ্চল অফসেট ছাড়াই বর্তমান ডাটাবেস সিস্টেমের টাইমস্ট্যাম্পকে ডেটটাইম মান হিসাবে প্রদান করে। এই মানটি কম্পিউটারের অপারেটিং সিস্টেম থেকে উদ্ভূত হয়েছে যেখানে এসকিউএল সার্ভারের দৃষ্টান্তটি চলছে।

UPDATE table SET date = GETDATE()
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.