আমি কীভাবে এসকিউএল ডাটাবেসে ডেটটাইম মান সন্নিবেশ করব?


109

আমি একটি মধ্যে একটি DATETIME মান সন্নিবেশ করার চেষ্টা করছি SQLite ডাটাবেস। এটি সাফল্যজনক বলে মনে হচ্ছে তবে আমি যখন মানটি পুনরুদ্ধার করার চেষ্টা করি তখন একটি ত্রুটি ঘটে:

<ডেটা পড়তে অক্ষম>

এসকিউএল বিবৃতিগুলি হ'ল:

create table myTable (name varchar(25), myDate DATETIME)
insert into myTable (name,mydate) Values ('fred','jan 1 2009 13:22:15')

উত্তর:


153

আপনার যে বিন্যাসটি প্রয়োজন তা হ'ল:

'2007-01-01 10:00:00'

অর্থাত্ yyyy-MM-dd এইচএইচ: মিমি: এসএস

তবে যদি সম্ভব হয় তবে একটি প্যারামিটারাইজড ক্যোয়ারী ব্যবহার করুন কারণ এটি আপনাকে ফর্ম্যাটিংয়ের বিশদ সম্পর্কে উদ্বিগ্ন হতে মুক্তি দেয়।


এই জাতীয় স্ট্রিং দিয়ে তারিখ অনুসারে কীভাবে একজন অর্ডার দেয়?
ইগোরগানাপলস্কি

3
আপনি যখন এই জাতীয় তারিখগুলি ফর্ম্যাট করেন, তারিখ ক্রম এবং লেজিকাল অর্ডারগুলি একই কাজ করে। উদাহরণস্বরূপ '২০০৮-০২-০১'> '2007-02-01', '২০০৮-০১-০২'> '২০০৮-০১-০১' উভয় স্ট্রিং এবং তারিখ হিসাবে। তবে আপনাকে এ বিষয়ে কঠোরভাবে যত্ন নেওয়ার দরকার নেই কারণ এসকিউএলাইট অর্ডার আপনার দ্বারা অর্ডার দেওয়ার ক্ষেত্রে যত্ন নেবে।
itowlson

7
নোট করুন যে আপনি নির্ভরযোগ্যভাবে লেজিকাল অর্ডার ব্যবহার করে বিভিন্ন নির্ভুলতার সাথে তারিখগুলি তুলনা করতে পারবেন না, যেমন "নির্বাচন করুন 2007-01-02 10:00:00 '>' 2007-01-02 10:00 ';" 1 টি প্রদান করে তবে "নির্বাচন করুন তারিখের সময় ('2007-01-02 10:00:00')> তারিখের সময় ('2007-01-02 10:00');" ০.
শেন

@ আইটলসন আপনার একাধিক ভাষা প্রয়োগ করার সময় এটি কীভাবে কাজ করবে?
ব্যাটম্যাকি

46

এসকিউএলাইটে তারিখগুলি সংরক্ষণ করার উপায় হ'ল:

 yyyy-mm-dd hh:mm:ss.xxxxxx

এসকিউএলাইটের কিছু তারিখ এবং সময় ফাংশন রয়েছে যা আপনি ব্যবহার করতে পারেন। এসকিউএলাইট, তারিখ এবং সময় কার্যকারিতা দ্বারা বোঝা হিসাবে এসকিউএল দেখুন ।


3
এফওয়াইআই, .xxxxxxএসকিউএলাইট ডকুমেন্টেশনে @ টরভালামোর সিনট্যাক্স = .SSS=% f এ, যেমন ভগ্নাংশের সেকেন্ডে F
ফ্লাক ডিএনএন্নো

2
ডেটটাইম.পারস ('2016-05-28 14:27:00 -0300')। স্ট্রফটাইম ('% Y-% মি-% d% এইচ:% এম:% এস')
রডভ্লপস

17

এসআরএফটিটাইম ফাংশনটি ব্যবহার করে এটি সন্নিবেশ করতে সক্ষম হতে আপনাকে সরবরাহ করা তারিখের স্ট্রিংয়ের ফর্ম্যাটটি পরিবর্তন করতে হবে। হওয়ার কারণ, এক মাসের সংক্ষিপ্তসার জন্য কোনও বিকল্প নেই:

%d  day of month: 00
%f  fractional seconds: SS.SSS
%H  hour: 00-24
%j  day of year: 001-366
%J  Julian day number
%m  month: 01-12
%M  minute: 00-59
%s  seconds since 1970-01-01
%S  seconds: 00-59
%w  day of week 0-6 with sunday==0
%W  week of year: 00-53
%Y  year: 0000-9999
%%  % 

বিকল্পটি হ'ল তারিখ / সময়টিকে ইতিমধ্যে স্বীকৃত বিন্যাসে ফর্ম্যাট করা:

  1. হল YYYY-MM-ডিডি
  2. YYYY-MM-DD HH: MM
  3. YYYY-MM-DD HH: এমএম: এসএস
  4. YYYY-MM-DD HH: MM: SS.SSS
  5. হল YYYY-MM-DDTHH: এম এম
  6. হল YYYY-MM-DDTHH: এম এম: এস এস
  7. হল YYYY-MM-DDTHH: এম এম: SS.SSS
  8. এইচ: এম এম
  9. HH: MM: এস এস
  10. HH: MM: SS.SSS
  11. এখন

তথ্যসূত্র: এসকিউএল তারিখ এবং সময় ফাংশন


যদিও টেবিলের তালিকাভুক্ত নয়
ডকসগুলিতে

10

CURRENT_TIMESTAMPআপনার প্রয়োজন হলে ব্যবহার করুন , পরিবর্তে NOW()(যা মাইএসকিউএল)


1
এটি কাজ করা হয়, একটি জিনিস ভুল। CURRENT_TIMESTAMP ইউটিসি ছাড়াই ডেটটাইম ফেরত, আপনি কীভাবে এই সমস্যাটি সমাধান করবেন জানেন know আগাম ধন্যবাদ!
উলুগব্যাক রোজিম্বয়েভ

8

পড়ুন এই : 1.2Date দোকান তারিখ এবং সময় এবং সময় ডাটাটাইপ সেরা ডাটা টাইপ হল:

TEXT সেরা বিন্যাসটি হ'ল: yyyy-MM-dd HH:mm:ss

তারপরে এই পৃষ্ঠাটি পড়ুন; এটি তারিখ এবং সময় সম্পর্কে সর্বোত্তমভাবে ব্যাখ্যা করা হয়েছে SQLite। আমি আশা করি এটি আপনাকে সাহায্য করবে



0

এটা হল সবচেয়ে জনপ্রিয় বা দক্ষ পদ্ধতি নাও হতে পারে, কিন্তু আমি শক্তিশালী datatypes ত্যাগ করতে ঝোঁক SQLite যেহেতু তারা সব মূলত মধ্যে স্ট্রিং হিসাবে যাহাই হউক না কেন ডাম্প করা হয়।

আমি এসকিউএল লাইব্রেরির চারপাশে একটি পাতলা সি # র‌্যাপার লিখেছি (এস # এস এর সাথে এসকিউলাইট ব্যবহার করার সময় অবশ্যই) এসকিউএলাইট থেকে এবং সারণি সন্নিবেশ এবং নিষ্কাশনগুলি পরিচালনা করার জন্য যেন আমি ডেটটাইম অবজেক্টের সাথে ডিল করছি।


খেজুরের জন্য এটি কেটে না যদি উদাহরণস্বরূপ আপনি সেই ক্ষেত্রটি অনুসারে বাছাই করতে চান; আপনি একটি স্ট্রিং তুলনা শেষ করেছেন ...
G__
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.