我们可以使用FORMAT_DATE函数来格式化包含日期表达式的字符串。它是高度使用的格式化日期的javascript函数之一。这个函数等同于其他关系型数据库中的to_char和to_date函数。在这篇文章中,我们将检查云Spanner的FORMAT_DATE函数。
format_date函数用于将表达式的日期转换成所需的格式。
Cloud Spanner FORMAT_DATE函数根据指定的日期格式字符串格式化包含日期的表达式。
语法
FORMAT_DATE(format_string, date_expr)
JAVA:
static void queryWithDate(DatabaseClient dbClient) {
String exampleDate = "2019-01-01";
Statement statement =
Statement.newBuilder(
"SELECT VenueId, VenueName, LastContactDate FROM Venues "
+ "WHERE LastContactDate < @lastContactDate")
.bind("lastContactDate")
.to(exampleDate)
.build();
try (ResultSet resultSet = dbClient.singleUse().executeQuery(statement)) {
while (resultSet.next()) {
System.out.printf(
"%d %s %s\n",
resultSet.getLong("VenueId"),
resultSet.getString("VenueName"),
resultSet.getDate("LastContactDate"));
}
}
}
Node JS :
// Imports the Google Cloud client library.
const {Spanner} = require('@google-cloud/spanner');
/**
* TODO(developer): Uncomment the following lines before running the sample.
*/
// const projectId = 'my-project-id';
// const instanceId = 'my-instance';
// const databaseId = 'my-database';
// Creates a client.
const spanner = new Spanner({
projectId: projectId,
});
// Gets a reference to a Cloud Spanner instance and database.
const instance = spanner.instance(instanceId);
const database = instance.database(databaseId);
const fieldType = {
type: 'date',
};
const exampleDate = '2019-01-01';
const query = {
sql: `SELECT VenueId, VenueName, LastContactDate FROM Venues
WHERE LastContactDate < @lastContactDate`,
params: {
lastContactDate: exampleDate,
},
types: {
lastContactDate: fieldType,
},
};
// Queries rows from the Venues table.
try {
const [rows] = await database.run(query);
rows.forEach(row => {
const date = row[2]['value'];
const json = row.toJSON();
console.log(
`VenueId: ${json.VenueId}, VenueName: ${json.VenueName},` +
` LastContactDate: ${JSON.stringify(date).substring(1, 11)}`
);
});
} catch (err) {
console.error('ERROR:', err);
} finally {
// Close the database when finished.
database.close();
}
JAVASCRIPT:
rows.forEach(row => {
const date = row[2]['value'];
const json = row.toJSON();
console.log(
`VenueId: ${json.VenueId}, VenueName: ${json.VenueName},` +
` LastContactDate: ${JSON.stringify(date).substring(1, 11)}`
);});