Java.util.Date কে java.sql.Date এ রূপান্তর করবেন?


453

আমি একটি java.util.Dateইনপুট হিসাবে ব্যবহার করার চেষ্টা করছি এবং তারপরে এটি নিয়ে একটি কোয়েরি তৈরি করছি - সুতরাং আমার একটি দরকার java.sql.Date

আমি অবাক হয়ে জানতে পারি যে এটি রূপান্তর বা সুস্পষ্টভাবে রূপান্তর করতে পারে না - তবে জাভা এপিআই আমার কাছে এখনও মোটামুটি নতুন বলে আমি কীভাবে এটি করব তাও জানি না।


আপনি এখানে একটি অনুরূপ সমস্যা খুঁজে পেতে পারেন stackoverflow.com/questions/12131068/…
লেম

আমার জন্য, এটি রূপান্তরিত করার দরকার নেই। import java.sql.*আমার কোডে একটি ছিল , java.util.date ওভাররাইডিং এবং এভাবে যখন তারিখের মানগুলি প্রথমটির সাথে না হলেও সঠিক ছিল ঠিক করার সময় সমস্যা তৈরি করে। আছে HTH
HumanInDisguise

1
@ ডেভিড অ্যাকারম্যান আপনি কী বুঝতে পেরেছেন যে java.util.Date একটি তারিখ এবং একটি দিনের নির্দিষ্ট সময়, তবে java.sql. তারিখটি একটি সময়- দিন ব্যতীত কেবল একটি তারিখ ? (আসলে একটি দিনের সময় আছে তবে এটি উপেক্ষা করা হয়, একটি শ্রেণি নকশার একটি খারাপ হ্যাক) এসকিউএল DATE-এ কেবলমাত্র তারিখের অর্থ।
তুলসী বার্ক

2
আমি আসলে '09-এ ফিরে এসেছিলাম: এবং এই প্রশ্নটি যেহেতু জনপ্রিয় তাই আমি স্বীকৃত উত্তরটি এমন একটিতে বদলেছি যা আরও আধুনিক এবং সম্পূর্ণ। সবাইকে অন্তর্ভুক্তির জন্য ধন্যবাদ!
ডেভিড অ্যাকারম্যান 15

উত্তর:


89

TL; ড

Java.util.Date কে java.sql.Date এ রূপান্তর করবেন?

না।উভয় শ্রেণিই নকশাকৃত।

  • ব্যবহার করুন java.time উত্তরাধিকার পরিবর্তে শ্রেণীর java.util.Date& java.sql.DateJDBC এর 4.2 বা পরবর্তী সঙ্গে।
  • কোড সহ ইন্টার-অপারেটিং এখনও জাভা.টাইমে আপডেট না হলে জাভা.টাইমে / থেকে রূপান্তর করুন।

সঙ্গে উদাহরণ ক্যোয়ারী PreparedStatement

myPreparedStatement.setObject( 
     ,                                         // Specify the ordinal number of which argument in SQL statement.
    myJavaUtilDate.toInstant()                  // Convert from legacy class `java.util.Date` (a moment in UTC) to a modern `java.time.Instant` (a moment in UTC).
        .atZone( ZoneId.of( "Africa/Tunis" ) )  // Adjust from UTC to a particular time zone, to determine a date. Instantiating a `ZonedDateTime`.
        .toLocalDate()                          // Extract a date-only `java.time.LocalDate` object from the date-time `ZonedDateTime` object.
)

প্রতিস্থাপন:

  • Instantjava.util.Date
    উভয়ের পরিবর্তে ইউটিসিতে একটি মুহুর্ত উপস্থাপন করে। তবে এখন মিলিসেকেন্ডের পরিবর্তে ন্যানোসেকেন্ডের সাথে।
  • LocalDatejava.sql.Date
    উভয়ের পরিবর্তে দিনের সময় ছাড়া এবং সময় অঞ্চল ব্যতীত কেবলমাত্র তারিখের মান উপস্থাপন করে।

বিস্তারিত

আপনি যদি কেবলমাত্র তারিখের মানগুলি নিয়ে কাজ করার চেষ্টা করছেন (দিনের কোনও সময় নয়, সময় অঞ্চল নয়), LocalDateবরং ক্লাসটি ব্যবহার করুন java.util.Date

জাভাতে তারিখের সময়ের ধরণের সারণী (উভয় উত্তরাধিকার এবং আধুনিক) এবং এসকিউএল স্ট্যান্ডার্ডে।

java.time

জাভা 8 এবং তার পরে, জাভা এর প্রাথমিক সংস্করণগুলির সাথে বান্ডিলযুক্ত সমস্যাযুক্ত পুরানো তারিখ-কালীন ক্লাসগুলি নতুন জাভা.টাইম প্যাকেজ দ্বারা পরিবেশন করা হয়েছে । ওরাকল টিউটোরিয়াল দেখুন । কার্যকারিতাটির বেশিরভাগটি থ্রিটেন-ব্যাকপোর্টে জাভা 6 এবং 7 এ ব্যাক-পোর্ট করা হয়েছে এবং আরও থ্রিডেএনএবিপিতে অ্যান্ড্রয়েডের সাথে মানিয়ে নেওয়া হয়েছে

একটি এসকিউএল ডেটা টাইপটি DATE কেবলমাত্র তারিখ হতে বোঝায়, দিনের কোনও সময় এবং সময় অঞ্চল নেই। জাভা java.time.LocalDate8- অবধি জাভা পর্যন্ত কখনই এ জাতীয় ক্লাস করেনি, আসুন একটি নির্দিষ্ট সময় অঞ্চল অনুসারে আজকের তারিখ পেয়ে এমন মান তৈরি করুন (মন্ট্রিয়ালের চেয়ে প্যারিসে আগের দিন ডোনস হিসাবে একটি তারিখ নির্ধারণে সময় অঞ্চল গুরুত্বপূর্ণ), উদাহরণস্বরূপ)।

LocalDate todayLocalDate = LocalDate.now( ZoneId.of( "America/Montreal" ) );  // Use proper "continent/region" time zone names; never use 3-4 letter codes like "EST" or "IST".

এই মুহুর্তে, আমরা সম্পন্ন হতে পারে। আপনার যদি JDBC ড্রাইভার মেনে JDBC এর 4.2 বৈশিষ্ট , আপনি একটি পাস করতে সক্ষম হওয়া উচিত LocalDateমাধ্যমে setObjectএকটি উপর PreparedStatementএকটি এসকিউএল DATE তারিখে ক্ষেত্রের মধ্যে দোকান থেকে।

myPreparedStatement.setObject( 1 , localDate );

একইভাবে, ResultSet::getObjectএকটি এসকিউএল তারিখ কলাম থেকে জাভা LocalDateঅবজেক্টে আনতে ব্যবহার করুন । দ্বিতীয় যুক্তিতে শ্রেণি নির্দিষ্ট করা আপনার কোডকে টাইপ-নিরাপদ করে তোলে ।

LocalDate localDate = ResultSet.getObject( 1 , LocalDate.class );

অন্য কথায়, এই পুরো প্রশ্নটি জেডিবিসি ৪.২ বা তার পরেও অপ্রাসঙ্গিক

আপনার জেডিবিসি ড্রাইভার যদি এই পদ্ধতিতে না সম্পাদন করে তবে আপনাকে java.sql ধরণের রূপান্তর করতে ফিরে যেতে হবে back

Java.sql.Date এ রূপান্তর করুন

রূপান্তর করতে, পুরানো তারিখের সময় ক্লাসে যুক্ত নতুন পদ্ধতি ব্যবহার করুন। আমরা java.sql.Date.valueOf(…)রূপান্তর করতে কল করতে পারি LocalDate

java.sql.Date sqlDate = java.sql.Date.valueOf( todayLocalDate );

এবং অন্য দিকে যাচ্ছে।

LocalDate localDate = sqlDate.toLocalDate();

থেকে রূপান্তর করা হচ্ছে java.util.Date

আপনার যদি পুরানো তারিখের সময় ক্লাসগুলি ব্যবহার করা এড়ানো উচিত তবে আপনি বিদ্যমান কোড সহ কাজ করার সময় বাধ্য হতে পারেন। যদি তা হয় তবে আপনি জাভা.টাইমে / থেকে রূপান্তর করতে পারেন।

Instantশ্রেণীর মধ্য দিয়ে যান , যা ইউটিসিতে সময়রেখার জন্য একটি মুহুর্তের প্রতিনিধিত্ব করে। একটি Instantধারণা হিসাবে একই java.util.Date। তবে নোট করুন যে Instantএর ন্যানোসেকেন্ড পর্যন্ত রেজোলিউশন java.util.Dateরয়েছে যখন কেবল মিলিসেকেন্ড রয়েছে রেজোলিউশন রয়েছে।

রূপান্তর করতে, পুরানো শ্রেণিতে যুক্ত নতুন পদ্ধতি ব্যবহার করুন। উদাহরণস্বরূপ, java.util.Date.from( Instant )এবং java.util.Date::toInstant

Instant instant = myUtilDate.toInstant();

একটি তারিখ নির্ধারণ করতে, আমাদের একটি সময় অঞ্চলের প্রসঙ্গের প্রয়োজন। যে কোনও মুহুর্তের জন্য, সময় অঞ্চল অনুসারে তারিখটি বিশ্ব জুড়ে পরিবর্তিত হয়। একটি ZoneIdপেতে একটি প্রয়োগ করুন ZonedDateTime

ZoneId zoneId = ZoneId.of ( "America/Montreal" );
ZonedDateTime zdt = ZonedDateTime.ofInstant ( instant , zoneId );
LocalDate localDate = zdt.toLocalDate();

Ava java.sql.Date ক্লাস কেবল দিনের সময় ব্যতীত তারিখ হওয়ার ভান করে তবে বাস্তবে দিনের একটি সময় করে , মধ্যরাতের সময়কে সামঞ্জস্য করে। বিভ্রান্তিকর? হ্যাঁ, পুরানো তারিখের সময় ক্লাসগুলি একটি গোলযোগ।


জাভা.টাইম সম্পর্কে

Java.time ফ্রেমওয়ার্ক জাভা 8 এবং পরে পাতাটা করা হয়। এই শ্রেণীর বিরক্তিজনক পুরাতন স্থানচ্যুত উত্তরাধিকার যেমন তারিখ-সময় শ্রেণীর java.util.Date, Calendar, &SimpleDateFormat

Joda-টাইম প্রকল্প, এখন রক্ষণাবেক্ষণ মোড , মাইগ্রেশনে উপদেশ java.time ক্লাস।

আরও জানতে, ওরাকল টিউটোরিয়ালটি দেখুন । এবং অনেক উদাহরণ এবং ব্যাখ্যার জন্য স্ট্যাক ওভারফ্লো অনুসন্ধান করুন। স্পেসিফিকেশনটি জেএসআর 310

আপনি আপনার ডাটাবেসের সাথে জাভা.টাইম অবজেক্টগুলি সরাসরি বিনিময় করতে পারেন । জেডিবিসি ৪.২ বা তারপরের সাথে অনুগত একটি জেডিবিসি ড্রাইভার ব্যবহার করুন । স্ট্রিংগুলির দরকার নেই, ক্লাসের প্রয়োজন নেই ।java.sql.*

জাভা.টাইম ক্লাস কোথায় পাবেন?

জাভা বা অ্যান্ড্রয়েডের কোন সংস্করণটি ব্যবহার করবে তা জাভা.টাইম লাইব্রেরির সারণী

ThreeTen-অতিরিক্ত প্রকল্প অতিরিক্ত শ্রেণীর সাথে java.time প্রসারিত করে। এই প্রকল্পটি জাভা.টাইমে সম্ভাব্য ভবিষ্যতের সংযোজনগুলির একটি প্রমাণযোগ্য ক্ষেত্র। আপনি এখানে কিছু দরকারী শ্রেণীর যেমন খুঁজে পেতে পারেন Interval, YearWeek, YearQuarter, এবং আরো


478

কিছু মনে করো না....

public class MainClass {

  public static void main(String[] args) {
    java.util.Date utilDate = new java.util.Date();
    java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
    System.out.println("utilDate:" + utilDate);
    System.out.println("sqlDate:" + sqlDate);

  }

}

এটি ব্যাখ্যা। লিঙ্কটি হ'ল http://www.java2s.com


34
এটি সুস্পষ্ট রূপান্তর নয়! জাভাডোক থেকে: "প্রদত্ত মিলিসেকেন্ডের মানটিতে যদি সময় সম্পর্কিত তথ্য থাকে, তবে ড্রাইভারটি ডিফল্ট টাইম জোনে (অ্যাপ্লিকেশনটিতে চলমান জাভা ভার্চুয়াল মেশিনের টাইম জোন) সময়ের সাথে সময় উপাদানগুলি সেট করে যা শূন্য জিএমটির সাথে মিলে যায়।" সুতরাং আপনার জাভা.ইউটি.এল.তে আপনার সময় কী তা বিচার্য নয়, এটি ডেটে সেট করা ডেটা টাইপ সহ একটি কলামে 00:00:00 হিসাবে সন্নিবেশ করা হবে।

1
@ ডেভিড অ্যাকারম্যান ..... এই পদ্ধতিটি epochsecondsঅর্থাত্ মিলি সেকেন্ড পরে দেয় 1,JAN,1970। তবে আমরা যদি এই তারিখের আগে কোনও ব্যক্তির তারিখ সংরক্ষণ করতে চাই তবে .... বা এর মতো কিছু0000-00-00 as default
অর্জুন কেপি

31
আমার ক্ষেত্রে সঠিক উত্তরটি হ'ল <code> java.sql.Timestamp sqlTimestamp = new java.sql.Timestamp (UseDate.getTime ()); </code>, কারণ এটি সময় ক্ষেত্রগুলি সংরক্ষণ করে।
আলবার্তো ডি পাওলা

2
@ ওয়্যারড00 হ্যাঁ, জাভার প্রারম্ভিক সংস্করণগুলির সাথে বান্ডিল করা পুরানো তারিখ-কালীন ক্লাসগুলি একটি জগাখিচুড়ি , কিছু অশোধিত হ্যাক সহ খারাপভাবে নকশা করা হয়েছে। যখনই সম্ভব, জাভা 8 এবং তারপরে নতুন জাভা.টাইম কাঠামোটি ব্যবহার করার চেষ্টা করুন । এই নতুন ক্লাসগুলি পুরানোকে সাপ্লান্ট করে। জাভা.টাইম ক্লাস এবং পুরাতন ক্লাসগুলির সামনে এবং পিছনে রূপান্তর করার জন্য কিছু সুবিধাজনক পদ্ধতি রয়েছে - দরকারী যখন আমরা জেডিবি.ই. ড্রাইভারগুলি নতুন নতুন জাভা.টাইম টাইপগুলি সরাসরি ব্যবহার করতে আপডেট হওয়ার জন্য অপেক্ষা করি।
তুলিল বাউরক

1
@ ওয়্যারড 00 জাভা.টাইম কীভাবে ব্যবহার করবেন সে সম্পর্কে এই প্রশ্নে আমার নতুন উত্তর দেখুন । আরও অনেক উদাহরণের জন্য স্ট্যাকওভারফ্লো অনুসন্ধান করুন।
তুলসী বাউরিক

39

অন্যান্য উত্তরের সাথে আপনার সময়ের তথ্য নিয়ে সমস্যা হতে পারে (অপ্রত্যাশিত ফলাফলের সাথে তারিখগুলি তুলনা করুন!)

আমার পরামর্শ:

java.util.Calendar cal = Calendar.getInstance();
java.util.Date utilDate = new java.util.Date(); // your util date
cal.setTime(utilDate);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);    
java.sql.Date sqlDate = new java.sql.Date(cal.getTime().getTime()); // your sql date
System.out.println("utilDate:" + utilDate);
System.out.println("sqlDate:" + sqlDate);

5
যদি তিনি একটি ডাটাবেসে তারিখ কলামের জন্য java.sql. তারিখ ব্যবহার করেন তবে সেই সময়ের তথ্যটি কাটা যাবে। আপনি আমার মতে সমাধানটিকে ওভাররিঞ্জাইন করেছেন।
darioo

4
হ্যাঁ, সম্ভবত আমি এটি করেছি। আমার মাঝে মাঝে java.sql.Data বর্তমান তারিখের সাথে তুলনা করতে হবে এবং এটিই সেরা উপায় way আমি আশা করি এটি সাহায্য করতে পারে।
ম্যারেটো

অবগতির জন্য, যেমন ভয়ঙ্কর বিরক্তিজনক পুরাতন তারিখ-সময় শ্রেণীর java.util.Date, java.util.Calendarএবং java.text.SimpleDateFormatএখন উত্তরাধিকার দ্বারা supplanted java.time জাভা 8 এবং পরে পাতাটা ক্লাস। ওরাকল দ্বারা টিউটোরিয়াল দেখুন ।
বাসিল বাউর্কে

অবশ্যই, এই বিষয়টি প্রায় 10 বছর আগে, প্রাক জাভা 8
ম্যারেটো

26

এই ফাংশন জাভা তারিখ অবজেক্ট থেকে রূপান্তরিত এসকিউএল তারিখ ফিরিয়ে দেবে।

public java.sql.Date convertJavaDateToSqlDate(java.util.Date date) {
    return new java.sql.Date(date.getTime());
}

18

রূপান্তর java.util.Dataকরার java.sql.Dataহারাবে ঘন্টা, মিনিট এবং দ্বিতীয়। সুতরাং যদি এটি সম্ভব হয় তবে আমি আপনাকে এটি ব্যবহার করার পরামর্শ দিচ্ছি java.sql.Timestamp:

prepareStatement.setTimestamp(1, new Timestamp(utilDate.getTime()));

আরও তথ্যের জন্য, আপনি এই প্রশ্নটি পরীক্ষা করতে পারেন ।


16

আমার ক্ষেত্রে JXDatePicker (জাভা ক্যালেন্ডার) থেকে তারিখ বাছাই এবং এটি এসকিউএল তারিখের ধরণ হিসাবে ডাটাবেসে সংরক্ষণ করার জন্য নীচে ঠিক কাজ করে ..

java.sql.Date date = new java.sql.Date(pickedDate.getDate().getTime());

যেখানে বাছাই তারিখটি JXDatePicker এর অবজেক্ট


5

এই ফাংশন জাভা তারিখ অবজেক্ট থেকে রূপান্তরিত এসকিউএল তারিখ ফিরিয়ে দেবে।

public static java.sql.Date convertFromJAVADateToSQLDate(
            java.util.Date javaDate) {
        java.sql.Date sqlDate = null;
        if (javaDate != null) {
            sqlDate = new Date(javaDate.getTime());
        }
        return sqlDate;
    }

3

প্রথমে আপনার java.util.Date ফর্ম্যাট করুন। তারপরে java.sql.Date এ তারিখ পেতে ফর্ম্যাট করা তারিখটি ব্যবহার করুন

java.util.Date utilDate = "Your date"
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
final String stringDate= dateFormat.format(utilDate);
final java.sql.Date sqlDate=  java.sql.Date.valueOf(stringDate);

2

এখানে ইউটিলি ডেটকে সিকিএল তারিখে রূপান্তর করার উদাহরণ এবং ইয়া আমি এই প্রকল্পটিতে যা ব্যবহার করছি তা আপনার পক্ষেও সহায়ক হতে পারে one

java.util.Date utilStartDate = table_Login.getDob();(orwhat ever date your give form obj)
java.sql.Date sqlStartDate = new java.sql.Date(utilStartDate.getTime());(converting date)

2

আমি একজন শিক্ষানবিস: অনেকটা দৌড়ানোর পরেও এই কাজ হয়েছে। চিন্তাভাবনা দরকারী হতে পারে

     String bufDt =  bDOB.getText();  //data from form
     DateFormat dF = new SimpleDateFormat("dd-MM-yyyy"); //data in form is in this format
     Date bbdt = (Date)dF.parse(bufDt);  // string data is converted into java util date
     DateFormat dsF = new SimpleDateFormat("yyyy-MM-dd"); //converted date is reformatted for conversion to sql.date
     String ndt = dsF.format(bbdt); // java util date is converted to compatible java sql date
     java.sql.Date sqlDate=  java.sql.Date.valueOf(ndt);  // finally data from the form is convered to java sql. date for placing in database

অবগতির জন্য, যেমন ভয়ঙ্কর বিরক্তিজনক পুরাতন তারিখ-সময় শ্রেণীর java.util.Date, java.util.Calendarএবং java.text.SimpleDateFormatএখন উত্তরাধিকার দ্বারা supplanted java.time জাভা 8 এবং পরে পাতাটা ক্লাস। ওরাকল দ্বারা টিউটোরিয়াল দেখুন ।
বাসিল বাউর্ক

2
java.sql.Date sqlDate = new java.sql.Date(javaDate.getTime());

এখানে javaDate হল java.util.Date এর উদাহরণ


1
ডেভিড অ্যাকারম্যান, চেতন এবং তন্ময় কুমার শ এর উত্তরগুলির তুলনায় এটি আসলে নতুন কিছু যোগ করার কথা মনে হচ্ছে না, তাই না?
ওলে ভিভি 14

1

২ টি তারিখের তুলনা করার পদ্ধতি (Use.date বা sql.date)

 public static boolean isSameDay(Date a, Date b) {
    Calendar calA = new GregorianCalendar();
    calA.setTime(a);

    Calendar calB = new GregorianCalendar();
    calB.setTime(b);

    final int yearA = calA.get(Calendar.YEAR);
    final int monthA = calA.get(Calendar.MONTH);
    final int dayA = calA.get(Calendar.DAY_OF_YEAR);

    final int yearB = calB.get(Calendar.YEAR);
    final int monthB = calB.get(Calendar.MONTH);
    final int dayB = calB.get(Calendar.DAY_OF_YEAR);

    return yearA == yearB && monthA == monthB && dayA == dayB;
}

0

এটি দিয়ে চেষ্টা করুন

public static String toMysqlDateStr(Date date) {
    String dateForMySql = "";
    if (date == null) {
        dateForMySql = null;
    } else {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        dateForMySql = sdf.format(date);
    }

    return dateForMySql;
}

-1

আমি মনে করি রূপান্তর করার সর্বোত্তম উপায় হ'ল:

static java.sql.Timestamp SQLDateTime(Long utilDate) {
    return new java.sql.Timestamp(utilDate);
}

Date date = new Date();
java.sql.Timestamp dt = SQLDateTime(date.getTime());

আপনি যদি dtভেরিয়েবলটি কোনও এসকিউএল টেবিলের মধ্যে সন্নিবেশ করতে চান তবে আপনি এটি করতে পারেন:

insert into table (expireAt) values ('"+dt+"');

1
এটি মূলত এক বছর আগে পোস্ট করা উত্তরটির সমান বলে মনে হয় ।
বার্নহার্ড বার্কার

-3

আমি নিম্নলিখিত কোড ব্যবহার করছি দয়া করে এটি চেষ্টা করে দেখুন

DateFormat fm= new SimpleDateFormatter();

উদাহরণস্বরূপ আপনি যে তারিখটি চান তার ফর্ম্যাট নির্দিষ্ট করুন "DD-MM_YYYY"বা তার 'YYYY-mm-dd' পরে জাভা ডেট ডাটাটাইপ ব্যবহার করুন

fm.format("object of java.util.date");

তাহলে এটি আপনার তারিখকে বিশ্লেষণ করবে


-3

আপনি এই পদ্ধতিটি ব্যবহারের তারিখটিকে স্ক্যুয়াল তারিখে রূপান্তর করতে ব্যবহার করতে পারেন,

DateUtilities.convertUtilDateToSql(java.util.Date)

স্ট্যান্ডার্ড জাভা লাইব্রেরিতে কোনও ডেট ইউটিলিটি ক্লাস নেই (এবং একটি দ্রুত গুগল অনুসন্ধান থেকে আমি এই পদ্ধতিটি কোথাও খুঁজে পাই না) এটি যদি কোনও নির্দিষ্ট লাইব্রেরি থেকে থাকে তবে আপনি হয়ত বেশি কিছু বলতে এবং ডক্সে একটি লিঙ্ক অন্তর্ভুক্ত করতে চাইতে পারেন।
বার্নহার্ড বার্কার

-4

আমি নিম্নলিখিত কোডিংটি চেষ্টা করছিলাম যা কাজ করে।

java.util.Date UseDate = নতুন java.util.Date ();
java.sql.Date sqlDate = new java.sql.Date (ইউজারডেট);


-8

আপনি যদি মাইএসকিএল ব্যবহার করেন তবে একটি তারিখের কলাম এই তারিখের একটি স্ট্রিং উপস্থাপনা পাস হতে পারে

সুতরাং আমি এটিকে ফর্ম্যাট করার জন্য ডেটফর্মেটর ক্লাসটি ব্যবহার করি এবং তারপরে এটি বর্গ স্টেটমেন্ট বা প্রস্তুত বিবৃতিতে একটি স্ট্রিং হিসাবে সেট করি

এখানে কোড চিত্রণ:

private String converUtilDateToSqlDate(java.util.Date utilDate) {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    String sqlDate = sdf.format(utilDate);
    return sqlDate;
}

স্ট্রিংয়ের তারিখ = রূপান্তরকার্যালিডেটটো এসকিএলডিট (অন্যান্য ট্রান্সজেকশন.সেট ট্রান্সডেট ());

// তারপরে এই তারিখটি আপনার কাছে বর্গ স্টেটমেন্টটি পাস করুন


14
স্ট্যাকওভারফ্লোতে স্বাগতম, আপনার উত্তরে আমার কয়েকটি মন্তব্য আছে। প্রশ্নটি ছিল "কীভাবে একটি java.util.Date to java.sql.Date তে রূপান্তর করবেন"। আপনি যে কোডটি আটকিয়েছেন সেটি একটি java.util.Date কে yyyy-MM-dd হিসাবে ফর্ম্যাট করে। এটি আসলে এই প্রসঙ্গে সীমিত ব্যবহারের কারণ আপনার স্ট্রিং হিসাবে না গিয়ে সরাসরি jdbc ড্রাইভারের কাছে java.sql. তারিখটি পাস করা উচিত।
jontro
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.