如何从数据库中获取时间? (在数据库中获取时间)
时间是数据库中常用的数据类型之一,它被广泛应用于各种应用程序中的各种功能,例如记录事件的发生时间、订单的提交时间、数据的更新时间等等。在许多应用程序中,需要从数据库中获取时间的信息才能实现特定的功能。本文将介绍如何从数据库中获取时间,并提供一些示例程序以帮助读者更好地理解这个过程。
一、从MySQL数据库中获取时间
MySQL是一个非常流行的数据库管理系统,它提供了强大的日期和时间函数来处理时间数据。在MySQL中,可以使用以下函数从数据库中获取时间:
1. NOW()函数:该函数返回当前日期和时间。
2. CURDATE()函数:该函数返回当前日期。
3. CURTIME()函数:该函数返回当前时间。
4. DATE()函数:该函数返回指定日期/时间表达式的日期部分。
5. TIME()函数:该函数返回指定日期/时间表达式的时间部分。
下面是一个示例程序,它使用MySQL的NOW()函数从数据库中获取当前日期和时间:
import java.sql.*;
public class MySQLDateTime {
static final String JDBC_DRIVER = “com.mysql.jdbc.Driver”;
static final String DB_URL = “jdbc:mysql://localhost/TEST”;
// Database credentials
static final String USER = “username”;
static final String PASS = “password”;
public static void mn(String[] args) {
Connection conn = null;
Statement stmt = null;
try {
// Register JDBC driver
Class.forName(JDBC_DRIVER);
// Open a connection
System.out.println(“Connecting to database…”);
conn = DriverManager.getConnection(DB_URL, USER, PASS);
// Execute a query
System.out.println(“Creating statement…”);
stmt = conn.createStatement();
String sql;
sql = “SELECT NOW()”;
ResultSet rs = stmt.executeQuery(sql);
// Extract data from result set
while (rs.next()) {
// Retrieve by column name
Timestamp ts = rs.getTimestamp(“NOW()”);
// Display values
System.out.println(“Current date and time: ” + ts);
}
// Clean-up environment
rs.close();
stmt.close();
conn.close();
} catch (SQLException se) {
// Handle errors for JDBC
se.printStackTrace();
} catch (Exception e) {
// Handle errors for Class.forName
e.printStackTrace();
} finally {
// finally block used to close resources
try {
if (stmt!= null) stmt.close();
} catch (SQLException se2) {
} // nothing we can do
try {
if (conn!= null) conn.close();
} catch (SQLException se) {
se.printStackTrace();
} // end finally try
} // end try
System.out.println(“Goodbye!”);
} // end mn
} // end MySQLDateTime
二、从Oracle数据库中获取时间
Oracle是一个流行的关系数据库管理系统,与MySQL不同,它提供了不同的函数来处理时间数据。以下是一些从Oracle数据库中获取时间信息的函数:
1. SYSDATE:该函数返回系统日期和时间。
2. LOCALTIMESTAMP:该函数返回本地日期和时间。
3. CURRENT_TIMESTAMP:该函数返回当前日期和时间,具有时区。
4. TO_DATE:该函数将日期时间字符串转换为日期时间值。
5. TO_CHAR:该函数将日期时间值转换为日期时间字符串。
以下是一个示例程序,它使用Oracle的SYSDATE函数从数据库中获取当前日期和时间:
import java.sql.*;
public class OracleDateTime {
static final String JDBC_DRIVER = “oracle.jdbc.driver.OracleDriver”;
static final String DB_URL = “jdbc:oracle:thin:@localhost:1521:XE”;
// Database credentials
static final String USER = “username”;
static final String PASS = “password”;
public static void mn(String[] args) {
Connection conn = null;
Statement stmt = null;
try {
// Register JDBC driver
Class.forName(JDBC_DRIVER);
// Open a connection
System.out.println(“Connecting to database…”);
conn = DriverManager.getConnection(DB_URL, USER, PASS);
// Execute a query
System.out.println(“Creating statement…”);
stmt = conn.createStatement();
String sql;
sql = “SELECT SYSDATE FROM DUAL”;
ResultSet rs = stmt.executeQuery(sql);
// Extract data from result set
while (rs.next()) {
// Retrieve by column name
Timestamp ts = rs.getTimestamp(“SYSDATE”);
// Display values
System.out.println(“Current date and time: ” + ts);
}
// Clean-up environment
rs.close();
stmt.close();
conn.close();
} catch (SQLException se) {
// Handle errors for JDBC
se.printStackTrace();
} catch (Exception e) {
// Handle errors for Class.forName
e.printStackTrace();
} finally {
// finally block used to close resources
try {
if (stmt!= null) stmt.close();
} catch (SQLException se2) {
} // nothing we can do
try {
if (conn!= null) conn.close();
} catch (SQLException se) {
se.printStackTrace();
} // end finally try
} // end try
System.out.println(“Goodbye!”);
} // end mn
} // end OracleDateTime
三、从SQL Server数据库中获取时间
SQL Server是另一个流行的关系数据库管理系统,它提供了以下用于处理时间数据的函数:
1. GETDATE():该函数返回当前日期和时间。
2. GETUTCDATE():该函数返回当前世界标准时间(UTC)。
3. CURRENT_TIMESTAMP:该函数返回当前日期和时间。
4. CONVERT():该函数将日期/时间型值转换为指定格式的字符串。
5. DATEPART():该函数返回指定日期的部分(例如年、月、日、小时、分钟或秒)。
以下是一个示例程序,它使用SQL Server的GETDATE()函数从数据库中获取当前日期和时间:
import java.sql.*;
public class SqlServerDateTime {
static final String JDBC_DRIVER = “com.microsoft.sqlserver.jdbc.SQLServerDriver”;
static final String DB_URL = “jdbc:sqlserver://localhost:1433;databaseName=TEST”;
// Database credentials
static final String USER = “username”;
static final String PASS = “password”;
public static void mn(String[] args) {
Connection conn = null;
Statement stmt = null;
try {
// Register JDBC driver
Class.forName(JDBC_DRIVER);
// Open a connection
System.out.println(“Connecting to database…”);
conn = DriverManager.getConnection(DB_URL, USER, PASS);
// Execute a query
System.out.println(“Creating statement…”);
stmt = conn.createStatement();
String sql;
sql = “SELECT GETDATE()”;
ResultSet rs = stmt.executeQuery(sql);
// Extract data from result set
while (rs.next()) {
// Retrieve by column name
Timestamp ts = rs.getTimestamp(“GETDATE()”);
// Display values
System.out.println(“Current date and time: ” + ts);
}
// Clean-up environment
rs.close();
stmt.close();
conn.close();
} catch (SQLException se) {
// Handle errors for JDBC
se.printStackTrace();
} catch (Exception e) {
// Handle errors for Class.forName
e.printStackTrace();
} finally {
// finally block used to close resources
try {
if (stmt!= null) stmt.close();
} catch (SQLException se2) {
} // nothing we can do
try {
if (conn!= null) conn.close();
} catch (SQLException se) {
se.printStackTrace();
} // end finally try
} // end try
System.out.println(“Goodbye!”);
} // end mn
} // end SqlServerDateTime
结论
从数据库中获取时间是许多应用程序开发中常见的操作之一。有关处理时间数据的函数和方法在不同类型的数据库中有所不同,但基本方法是相似的。本文介绍了从MySQL、Oracle和SQL Server等多个流行数据库中获取时间的方法示例。阅读本文后,读者应该能够更好地理解如何在自己的应用程序中获取时间数据,以便更好地实现各种时间相关的功能。