Хорошо, я наконец понял это. Я надеюсь, что это будет полезно для других. Эта функция будет извлекать 20 последних сообщений, включая время создания:
// npm i request cheerio request-promise-native
const rp = require('request-promise-native'); // requires installation of `request`
const cheerio = require('cheerio');
function GetFbPosts(pageUrl) {
const requestOptions = {
url: pageUrl,
headers: {
'User-Agent': 'Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:64.0) Gecko/20100101 Firefox/64.0'
}
};
return rp.get(requestOptions).then( postsHtml => {
const $ = cheerio.load(postsHtml);
const timeLinePostEls = $('.userContent').map((i,el)=>$(el)).get();
const posts = timeLinePostEls.map(post=>{
return {
message: post.html(),
created_time: post.parents('.userContentWrapper').find('.timestampContent').html()
}
});
return posts;
});
}
GetFbPosts('https://www.facebook.com/pg/officialstackoverflow/posts/').then(posts=>{
// Log all posts
for (const post of posts) {
console.log(post.created_at, post.message);
}
});
Поскольку сообщения Facebook могут иметь сложное форматирование, это не простой текст, а HTML. Но вы можете удалить форматирование и просто получить текст, заменив message: post.html()
на message: post.text()
.
Что относительно:
CREATE FUNCTION [dbo].[fComputeValue] (@data XML)
RETURNS varchar(50)
WITH SCHEMABINDING
AS
BEGIN
RETURN @data.value('(/Metadata/Value[@Key="StartDate"])[1]', 'varchar(50)')
END
и:
ALTER TABLE dbo.CustomMetadataTable ADD [StartDate] AS (convert(datetime,([dbo].[fComputeValue]([CustomMetadataColumn]), 127)) PERSISTED
или:
return convert(datetime, @data.value('(/Metadata/Value[@Key="StartDate"])[1]', 'varchar(50)'), 127)
Из книг онлайн:
CONVERT
Детерминировано, если одно из этих условий не существует:Исходный тип является sql_variant.
Целевой тип является sql_variant, и его исходный тип недетерминирован.
Источник или целевой тип являются датой и временем или smalldatetime, другой источник или целевой тип являются символьной строкой, и указан недетерминированный стиль. Чтобы быть детерминированным, параметр стиля должен быть константой. Кроме того, разрабатывает меньше чем или равный 100, недетерминированы, за исключением стилей 20 и 21. Стили, больше, чем 100, детерминированы, за исключением стилей 106, 107, 109 и 113.
Могло бы помочь, используете ли Вы CONVERT
со стилем 127